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/AggregationMemberRenderer.java | 133 +++++++++++++++++ .../cristalise/gui/collection/CollectionFrame.java | 42 ++++++ .../cristalise/gui/collection/PropertyPanel.java | 38 +++++ .../gui/collection/SelectedMemberPanel.java | 166 +++++++++++++++++++++ 4 files changed, 379 insertions(+) create mode 100644 src/main/java/org/cristalise/gui/collection/AggregationMemberRenderer.java create mode 100644 src/main/java/org/cristalise/gui/collection/CollectionFrame.java create mode 100644 src/main/java/org/cristalise/gui/collection/PropertyPanel.java create mode 100644 src/main/java/org/cristalise/gui/collection/SelectedMemberPanel.java (limited to 'src/main/java/org/cristalise/gui/collection') diff --git a/src/main/java/org/cristalise/gui/collection/AggregationMemberRenderer.java b/src/main/java/org/cristalise/gui/collection/AggregationMemberRenderer.java new file mode 100644 index 0000000..20af733 --- /dev/null +++ b/src/main/java/org/cristalise/gui/collection/AggregationMemberRenderer.java @@ -0,0 +1,133 @@ +package org.cristalise.gui.collection; + +import java.awt.FontMetrics; +import java.awt.Graphics2D; +import java.awt.Image; + +import org.cristalise.gui.ImageLoader; +import org.cristalise.gui.graph.view.VertexRenderer; +import org.cristalise.kernel.collection.Aggregation; +import org.cristalise.kernel.collection.AggregationMember; +import org.cristalise.kernel.graph.model.GraphPoint; +import org.cristalise.kernel.graph.model.Vertex; +import org.cristalise.kernel.utils.Logger; + + + +/** + * @version $Revision: 1.24 $ $Date: 2005/12/01 14:23:15 $ + * @author $Author: abranson $ + */ + +public class AggregationMemberRenderer implements VertexRenderer +{ + + private Aggregation mAggregation = null; + + public AggregationMemberRenderer() + { + } + + public void setAggregation(Aggregation agg) + { + mAggregation = agg; + } + + + @Override + public void draw(Graphics2D g2d, Vertex vertex) + { + GraphPoint centre = vertex.getCentrePoint(); + GraphPoint[] outline = vertex.getOutlinePoints(); + FontMetrics metrics = g2d.getFontMetrics(); + + AggregationMember memberPair = mAggregation.getMemberPair(vertex.getID()); + + try + { + String name = memberPair.getItemName(); + + g2d.drawString( name, + centre.x-metrics.stringWidth(name)/2, + vertex.getID()%2==0?topYOfOutline(outline):bottomYOfOutline(outline)+metrics.getHeight() ); + + g2d.drawImage + ( + getImage(memberPair), + centre.x - 8, + centre.y - 8, + null + ); + + + + // Draw the outline of the vertex + if(outline.length > 1) + { + for(int i=0; i bottomY) + { + bottomY = outline[i].y; + } + } + + return bottomY; + } + + public Image getImage(AggregationMember am) { + return ImageLoader.findImage("typeicons/"+am.getProperties().get("Type")+"_16.png").getImage(); + } +} diff --git a/src/main/java/org/cristalise/gui/collection/CollectionFrame.java b/src/main/java/org/cristalise/gui/collection/CollectionFrame.java new file mode 100644 index 0000000..c30eec9 --- /dev/null +++ b/src/main/java/org/cristalise/gui/collection/CollectionFrame.java @@ -0,0 +1,42 @@ +package org.cristalise.gui.collection; + +import java.awt.GridLayout; + +import javax.swing.JFrame; + +import org.cristalise.gui.tabs.CollectionPane; +import org.cristalise.kernel.collection.Aggregation; + + + +/** + * @version $Revision: 1.10 $ $Date: 2003/04/06 15:06:36 $ + * @author $Author: abranson $ + */ + +public class CollectionFrame extends JFrame +{ + + private CollectionPane mCollectionPane = new CollectionPane(); + + public CollectionFrame() + { + createLayout(); + } + + public void setAggregation(Aggregation aggregation) + { + mCollectionPane.add(aggregation); + } + + + private void createLayout() + { + getContentPane().setLayout(new GridLayout(1, 1)); + + getContentPane().add(mCollectionPane); + + setSize(1000, 1000); + setVisible(true); + } +} diff --git a/src/main/java/org/cristalise/gui/collection/PropertyPanel.java b/src/main/java/org/cristalise/gui/collection/PropertyPanel.java new file mode 100644 index 0000000..08ce519 --- /dev/null +++ b/src/main/java/org/cristalise/gui/collection/PropertyPanel.java @@ -0,0 +1,38 @@ +package org.cristalise.gui.collection; + +import org.cristalise.gui.graph.view.VertexPropertyPanel; +import org.cristalise.kernel.collection.Aggregation; +import org.cristalise.kernel.collection.AggregationMember; +import org.cristalise.kernel.collection.CollectionMember; +import org.cristalise.kernel.common.ObjectNotFoundException; +import org.cristalise.kernel.graph.model.Vertex; + + +public class PropertyPanel extends VertexPropertyPanel { + + Aggregation mCollection; + + public PropertyPanel() { + super(); + } + + public void setCollection(Aggregation collection) { + mCollection = collection; + } + + @Override + public void setVertex(Vertex vert) { + try { + CollectionMember newMember = mCollection.getMember(vert.getID()); + if (newMember instanceof AggregationMember) { + super.setVertex((AggregationMember)newMember); + return; + } + else + clear(); + } catch (ObjectNotFoundException ex) { + clear(); + selObjClass.setText("No Collection Member object found"); + } + } +} 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