Author: robbie
Date: Tue Jul 21 09:16:54 2009
New Revision: 796205
URL: http://svn.apache.org/viewvc?rev=796205&view=rev
Log:
QPID-1981: add copyMessages() support to the QueueOperations tab
Modified:
qpid/trunk/qpid/java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/views/queue/QueueOperationsTabControl.java
Modified:
qpid/trunk/qpid/java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/views/queue/QueueOperationsTabControl.java
URL:
http://svn.apache.org/viewvc/qpid/trunk/qpid/java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/views/queue/QueueOperationsTabControl.java?rev=796205&r1=796204&r2=796205&view=diff
==============================================================================
---
qpid/trunk/qpid/java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/views/queue/QueueOperationsTabControl.java
(original)
+++
qpid/trunk/qpid/java/management/eclipse-plugin/src/main/java/org/apache/qpid/management/ui/views/queue/QueueOperationsTabControl.java
Tue Jul 21 09:16:54 2009
@@ -390,9 +390,33 @@
return;
}
- moveMessages(moveMessagesButton.getShell());
+ moveOrCopyMessages(moveMessagesButton.getShell(),
QueueOperations.MOVE);
}
});
+
+ final Button copyMessagesButton;
+ if(_ApiVersion.greaterThanOrEqualTo(1, 3))//if the server supports
Qpid JMX API 1.3
+ {
+ copyMessagesButton= _toolkit.createButton(buttonsComposite, "Copy
Message(s) ...", SWT.PUSH);
+ copyMessagesButton.setLayoutData(new GridData(SWT.FILL, SWT.TOP,
false, false));
+ copyMessagesButton.setEnabled(false);
+ copyMessagesButton.addSelectionListener(new SelectionAdapter()
+ {
+ public void widgetSelected(SelectionEvent e)
+ {
+ if (_table.getSelectionIndex() == -1)
+ {
+ return;
+ }
+
+ moveOrCopyMessages(copyMessagesButton.getShell(),
QueueOperations.COPY);
+ }
+ });
+ }
+ else
+ {
+ copyMessagesButton = null;
+ }
final Button clearQueueButton =
_toolkit.createButton(buttonsComposite, "Clear Queue", SWT.PUSH);
clearQueueButton.setLayoutData(new GridData(SWT.FILL, SWT.TOP, false,
false));
@@ -476,12 +500,20 @@
redeliveredText.setText("-");
viewSelectedMsgButton.setEnabled(false);
moveMessagesButton.setEnabled(false);
-
+ if(copyMessagesButton != null)
+ {
+ copyMessagesButton.setEnabled(false);
+ }
+
return;
}
else
{
moveMessagesButton.setEnabled(true);
+ if(copyMessagesButton != null)
+ {
+ copyMessagesButton.setEnabled(true);
+ }
final CompositeData selectedMsg =
(CompositeData)_table.getItem(selectionIndex).getData();
Boolean redelivered = (Boolean)
selectedMsg.get(MSG_REDELIVERED);
@@ -697,7 +729,7 @@
shell.dispose();
}
- private void moveMessages(final Shell parent)
+ private void moveOrCopyMessages(final Shell parent, final QueueOperations
op)
{
final ArrayList<Long> rangeStarts = new ArrayList<Long>();
final ArrayList<Long> rangeEnds = new ArrayList<Long>();
@@ -705,14 +737,34 @@
gatherSelectedAMQMsgIDRanges(rangeStarts,rangeEnds);
String rangeString = getRangesString(rangeStarts,rangeEnds);
- final Shell shell = ViewUtility.createModalDialogShell(parent, "Move
Messages");
+ String windowTitle;
+ String dialogueMessage;
+ final String feedBackMessage;
+ final String failureFeedBackMessage;
+
+ if(op.equals(QueueOperations.MOVE))
+ {
+ windowTitle = "Move Messages";
+ dialogueMessage = "Move message(s) with AMQ ID:";
+ feedBackMessage = "Messages moved";
+ failureFeedBackMessage = "Error moving messages";
+ }
+ else
+ {
+ windowTitle = "Copy Messages";
+ dialogueMessage = "Copy message(s) with AMQ ID:";
+ feedBackMessage = "Messages copied";
+ failureFeedBackMessage = "Error copying messages";
+ }
+
+ final Shell shell = ViewUtility.createModalDialogShell(parent,
windowTitle);
Composite idComposite = _toolkit.createComposite(shell, SWT.NONE);
idComposite.setBackground(shell.getBackground());
idComposite.setLayoutData(new GridData(SWT.FILL, SWT.TOP, true,
false));
idComposite.setLayout(new GridLayout());
- _toolkit.createLabel(idComposite,"Move message(s) with AMQ
ID:").setBackground(shell.getBackground());
+
_toolkit.createLabel(idComposite,dialogueMessage).setBackground(shell.getBackground());
_toolkit.createLabel(idComposite,rangeString).setBackground(shell.getBackground());
Composite destinationComposite = _toolkit.createComposite(shell,
SWT.NONE);
@@ -762,14 +814,22 @@
Long from = rangeStarts.get(i);
Long to = rangeEnds.get(i);
- _qmb.moveMessages(Long.valueOf(from),
Long.valueOf(to), destQueue);
+ switch(op)
+ {
+ case COPY:
+ _qmb.copyMessages(Long.valueOf(from),
Long.valueOf(to), destQueue);
+ break;
+ case MOVE:
+ _qmb.moveMessages(Long.valueOf(from),
Long.valueOf(to), destQueue);
+ break;
+ }
}
- ViewUtility.operationResultFeedback(null, "Messages
moved", null);
+ ViewUtility.operationResultFeedback(null, feedBackMessage,
null);
}
catch (Exception e4)
{
- ViewUtility.operationFailedStatusBarMessage("Error moving
messages");
+
ViewUtility.operationFailedStatusBarMessage(failureFeedBackMessage);
MBeanUtility.handleException(_mbean, e4);
}
@@ -860,4 +920,10 @@
return idRangesString.concat(".");
}
+
+ private enum QueueOperations
+ {
+ MOVE,
+ COPY;
+ }
}
---------------------------------------------------------------------
Apache Qpid - AMQP Messaging Implementation
Project: http://qpid.apache.org
Use/Interact: mailto:[email protected]