From 5e4034b5cba89460a62fa958fc78c2b85acb3d5f Mon Sep 17 00:00:00 2001 From: Andrew Branson Date: Tue, 7 Oct 2014 09:18:33 +0200 Subject: Repackage to org.cristalise --- .../gui/collection/SelectedMemberPanel.java | 166 +++++++++++++++++++++ 1 file changed, 166 insertions(+) create mode 100644 src/main/java/org/cristalise/gui/collection/SelectedMemberPanel.java (limited to 'src/main/java/org/cristalise/gui/collection/SelectedMemberPanel.java') 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); + } + +} + -- cgit v1.2.3