summaryrefslogtreecommitdiff
path: root/src/main/java/org/cristalise/gui/collection/SelectedMemberPanel.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/org/cristalise/gui/collection/SelectedMemberPanel.java')
-rw-r--r--src/main/java/org/cristalise/gui/collection/SelectedMemberPanel.java166
1 files changed, 166 insertions, 0 deletions
diff --git a/src/main/java/org/cristalise/gui/collection/SelectedMemberPanel.java b/src/main/java/org/cristalise/gui/collection/SelectedMemberPanel.java
new file mode 100644
index 0000000..0b2244e
--- /dev/null
+++ b/src/main/java/org/cristalise/gui/collection/SelectedMemberPanel.java
@@ -0,0 +1,166 @@
+package org.cristalise.gui.collection;
+
+import java.awt.GridLayout;
+import java.awt.event.ActionEvent;
+import java.awt.event.ActionListener;
+
+import javax.swing.Box;
+import javax.swing.BoxLayout;
+import javax.swing.JButton;
+import javax.swing.JLabel;
+import javax.swing.JOptionPane;
+import javax.swing.JPanel;
+import javax.swing.JTextField;
+import javax.swing.JToggleButton;
+
+import org.cristalise.gui.DomainKeyConsumer;
+import org.cristalise.gui.MainFrame;
+import org.cristalise.gui.graph.view.SelectedVertexPanel;
+import org.cristalise.kernel.collection.AggregationMember;
+import org.cristalise.kernel.common.InvalidCollectionModification;
+import org.cristalise.kernel.common.ObjectNotFoundException;
+import org.cristalise.kernel.entity.proxy.ItemProxy;
+import org.cristalise.kernel.graph.model.Vertex;
+import org.cristalise.kernel.lookup.DomainPath;
+import org.cristalise.kernel.lookup.ItemPath;
+import org.cristalise.kernel.process.Gateway;
+import org.cristalise.kernel.utils.Language;
+
+
+/**************************************************************************
+ *
+ * $Revision: 1.10 $
+ * $Date: 2005/05/12 10:12:52 $
+ *
+ * Copyright (C) 2003 CERN - European Organization for Nuclear Research
+ * All rights reserved.
+ **************************************************************************/
+
+
+public class SelectedMemberPanel extends SelectedVertexPanel implements DomainKeyConsumer {
+
+ JLabel slotNumber = new JLabel();
+ JTextField memberKey = new JTextField(14);
+
+ JButton findButton = new JButton(Language.translate("Find"));
+ JToggleButton changeButton = new JToggleButton(Language.translate("Change"));
+ JButton removeButton = new JButton(Language.translate("Remove"));
+
+ SelectedMemberPanel me;
+ AggregationMember selectedMember = null;
+
+ public SelectedMemberPanel() {
+ me=this;
+ setLayout(new BoxLayout(this, BoxLayout.Y_AXIS));
+
+ JPanel attrs = new JPanel(new GridLayout(3,2));
+ attrs.add(new JLabel(Language.translate("Slot Number:")));
+ attrs.add(slotNumber);
+ attrs.add(new JLabel(Language.translate("Assigned Member:")));
+ attrs.add(memberKey);
+ memberKey.setEditable(false);
+
+ add(attrs);
+ add(Box.createVerticalStrut(10));
+
+ findButton.addActionListener(new ActionListener() {
+ @Override
+ public void actionPerformed(ActionEvent ae) {
+ String code = memberKey.getText();
+ if (code == null || code.length() == 0)
+ code = memberKey.getText().replace('/',' ');
+ MainFrame.itemFinder.pushNewKey(code);
+ }
+ });
+
+ changeButton.addActionListener(new ActionListener() {
+ @Override
+ public void actionPerformed(ActionEvent ae) {
+ if (changeButton.getModel().isSelected()) {
+ MainFrame.itemFinder.setConsumer(me, "Assign");
+ findButton.setEnabled(false);
+ }
+ else {
+ MainFrame.itemFinder.clearConsumer(me);
+ if (selectedMember.getItemPath() != null) findButton.setEnabled(true);
+ }
+ }
+ });
+
+ removeButton.addActionListener(new ActionListener() {
+ @Override
+ public void actionPerformed(ActionEvent ae) {
+ selectedMember.clearItem();
+ selectedMember.getProperties().remove("Name");
+ select(selectedMember);
+ }
+ });
+
+ Box buttonBox = Box.createHorizontalBox();
+ buttonBox.add(findButton);
+ if (MainFrame.isAdmin) {
+ buttonBox.add(changeButton);
+ buttonBox.add(removeButton);
+ }
+
+ setButtons(false);
+ add(buttonBox);
+ }
+
+ @Override
+ public void select(Vertex vert) {
+ selectedMember = (AggregationMember)vert;
+ slotNumber.setText(String.valueOf(vert.getID()));
+ ItemPath memberPath = selectedMember.getItemPath();
+ String name = "Empty";
+ if (memberPath != null)
+ try {
+ ItemProxy member = Gateway.getProxyManager().getProxy(memberPath);
+ name = member.getName();
+ } catch (Exception e) { }
+ memberKey.setText(name);
+ setButtons(true);
+
+ revalidate();
+ }
+
+ @Override
+ public void clear() {
+ slotNumber.setText("");
+ memberKey.setText("");
+ setButtons(false);
+ revalidate();
+ }
+
+ public void setButtons(boolean state) {
+ findButton.setEnabled(state);
+ changeButton.getModel().setSelected(false);
+ changeButton.setEnabled(state);
+ removeButton.setEnabled(state);
+ MainFrame.itemFinder.clearConsumer(me);
+ }
+ /**
+ *
+ */
+ @Override
+ public void push(DomainPath key) {
+ try {
+ selectedMember.assignItem(key.getItemPath());
+ select(selectedMember);
+ } catch (InvalidCollectionModification ex) {
+ JOptionPane.showMessageDialog(null, "Item does not fit in this slot", "Error", JOptionPane.ERROR_MESSAGE);
+ } catch (ObjectNotFoundException e) {
+ JOptionPane.showMessageDialog(null, "Not an item - cannot assign", "Error", JOptionPane.ERROR_MESSAGE);
+ }
+ }
+
+ /**
+ *
+ */
+ @Override
+ public void push(String name) {
+ JOptionPane.showMessageDialog(null, "Item is not known in this centre", "Error", JOptionPane.ERROR_MESSAGE);
+ }
+
+}
+