From b086f57f56bf0eb9dab9cf321a0f69aaaae84347 Mon Sep 17 00:00:00 2001 From: Andrew Branson Date: Wed, 30 May 2012 08:37:45 +0200 Subject: Initial Maven Conversion --- .../gui/model/AggregationVertexFactory.java | 46 ++++++ .../gui/model/AggregationVertexOutlineCreator.java | 44 ++++++ .../gui/view/AggregationMemberRenderer.java | 125 ++++++++++++++++ .../collection/gui/view/CollectionFrame.java | 41 ++++++ .../collection/gui/view/PropertyPanel.java | 37 +++++ .../collection/gui/view/SelectedMemberPanel.java | 164 +++++++++++++++++++++ 6 files changed, 457 insertions(+) create mode 100644 src/main/java/com/c2kernel/collection/gui/model/AggregationVertexFactory.java create mode 100644 src/main/java/com/c2kernel/collection/gui/model/AggregationVertexOutlineCreator.java create mode 100644 src/main/java/com/c2kernel/collection/gui/view/AggregationMemberRenderer.java create mode 100644 src/main/java/com/c2kernel/collection/gui/view/CollectionFrame.java create mode 100644 src/main/java/com/c2kernel/collection/gui/view/PropertyPanel.java create mode 100644 src/main/java/com/c2kernel/collection/gui/view/SelectedMemberPanel.java (limited to 'src/main/java/com/c2kernel/collection/gui') diff --git a/src/main/java/com/c2kernel/collection/gui/model/AggregationVertexFactory.java b/src/main/java/com/c2kernel/collection/gui/model/AggregationVertexFactory.java new file mode 100644 index 0000000..cd4963f --- /dev/null +++ b/src/main/java/com/c2kernel/collection/gui/model/AggregationVertexFactory.java @@ -0,0 +1,46 @@ +package com.c2kernel.collection.gui.model; + +import java.awt.Point; + +import com.c2kernel.collection.Aggregation; +import com.c2kernel.collection.MembershipException; +import com.c2kernel.graph.model.GraphModelManager; +import com.c2kernel.graph.model.GraphPoint; +import com.c2kernel.graph.model.TypeNameAndConstructionInfo; +import com.c2kernel.graph.model.VertexFactory; +import com.c2kernel.utils.CastorHashMap; +import com.c2kernel.utils.Logger; + + +public class AggregationVertexFactory implements VertexFactory +{ + private Aggregation mAggregation = null; + + + @Override + public void setCreationContext(Object aggregation) + { + if (aggregation != null && aggregation instanceof Aggregation) + mAggregation = (Aggregation)aggregation; + } + + + @Override + public void create + ( + GraphModelManager graphModelManager, + Point location, + TypeNameAndConstructionInfo typeNameAndConstructionInfo + ) + { + if (typeNameAndConstructionInfo.mInfo.equals("AggregationMember")) { + try { + mAggregation.addMember(-1, new CastorHashMap(), "", new GraphPoint(location.x, location.y), 40, 40); + } catch (MembershipException ex) { + Logger.error(ex); + Logger.exceptionDialog(ex); + } + } + } +} + diff --git a/src/main/java/com/c2kernel/collection/gui/model/AggregationVertexOutlineCreator.java b/src/main/java/com/c2kernel/collection/gui/model/AggregationVertexOutlineCreator.java new file mode 100644 index 0000000..b28af2e --- /dev/null +++ b/src/main/java/com/c2kernel/collection/gui/model/AggregationVertexOutlineCreator.java @@ -0,0 +1,44 @@ +package com.c2kernel.collection.gui.model; + +import com.c2kernel.graph.model.GraphPoint; +import com.c2kernel.graph.model.Vertex; +import com.c2kernel.graph.model.VertexOutlineCreator; + + +public class AggregationVertexOutlineCreator implements VertexOutlineCreator +{ + @Override + public void setOutline(Vertex vertex) + { + GraphPoint centre = vertex.getCentrePoint(); + int height = vertex.getHeight(); + int width = vertex.getWidth(); + + + if (height==0 || width==0) + vertex.setOutlinePoints + ( + new GraphPoint[] + { + new GraphPoint(centre.x-20, centre.y-20), + new GraphPoint(centre.x+20, centre.y-20), + new GraphPoint(centre.x+20, centre.y+20), + new GraphPoint(centre.x-20, centre.y+20) + + } + ); + else + + vertex.setOutlinePoints + ( + new GraphPoint[] + { + new GraphPoint(centre.x-width/2, centre.y-height/2), + new GraphPoint(centre.x+width/2, centre.y-height/2), + new GraphPoint(centre.x+width/2, centre.y+height/2), + new GraphPoint(centre.x-width/2, centre.y+height/2) + + } + ); + } +} diff --git a/src/main/java/com/c2kernel/collection/gui/view/AggregationMemberRenderer.java b/src/main/java/com/c2kernel/collection/gui/view/AggregationMemberRenderer.java new file mode 100644 index 0000000..6d41d20 --- /dev/null +++ b/src/main/java/com/c2kernel/collection/gui/view/AggregationMemberRenderer.java @@ -0,0 +1,125 @@ +package com.c2kernel.collection.gui.view; + +import java.awt.FontMetrics; +import java.awt.Graphics2D; + +import com.c2kernel.collection.Aggregation; +import com.c2kernel.collection.AggregationMember; +import com.c2kernel.graph.model.GraphPoint; +import com.c2kernel.graph.model.Vertex; +import com.c2kernel.graph.view.VertexRenderer; +import com.c2kernel.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.getEntityName(); + + g2d.drawString( name, + centre.x-metrics.stringWidth(name)/2, + topYOfOutline(outline) ); + + g2d.drawImage + ( + memberPair.getImage(), + 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; + } +} diff --git a/src/main/java/com/c2kernel/collection/gui/view/CollectionFrame.java b/src/main/java/com/c2kernel/collection/gui/view/CollectionFrame.java new file mode 100644 index 0000000..2d40436 --- /dev/null +++ b/src/main/java/com/c2kernel/collection/gui/view/CollectionFrame.java @@ -0,0 +1,41 @@ +package com.c2kernel.collection.gui.view; + +import java.awt.GridLayout; + +import javax.swing.JFrame; + +import com.c2kernel.collection.Aggregation; +import com.c2kernel.gui.tabs.CollectionPane; + + +/** + * @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/com/c2kernel/collection/gui/view/PropertyPanel.java b/src/main/java/com/c2kernel/collection/gui/view/PropertyPanel.java new file mode 100644 index 0000000..f566d70 --- /dev/null +++ b/src/main/java/com/c2kernel/collection/gui/view/PropertyPanel.java @@ -0,0 +1,37 @@ +package com.c2kernel.collection.gui.view; + +import com.c2kernel.collection.Aggregation; +import com.c2kernel.collection.AggregationMember; +import com.c2kernel.collection.CollectionMember; +import com.c2kernel.common.ObjectNotFoundException; +import com.c2kernel.graph.model.Vertex; +import com.c2kernel.graph.view.VertexPropertyPanel; + +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/com/c2kernel/collection/gui/view/SelectedMemberPanel.java b/src/main/java/com/c2kernel/collection/gui/view/SelectedMemberPanel.java new file mode 100644 index 0000000..5b59b35 --- /dev/null +++ b/src/main/java/com/c2kernel/collection/gui/view/SelectedMemberPanel.java @@ -0,0 +1,164 @@ +package com.c2kernel.collection.gui.view; + +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 com.c2kernel.collection.AggregationMember; +import com.c2kernel.collection.MembershipException; +import com.c2kernel.entity.proxy.EntityProxy; +import com.c2kernel.graph.model.Vertex; +import com.c2kernel.graph.view.SelectedVertexPanel; +import com.c2kernel.gui.DomainKeyConsumer; +import com.c2kernel.gui.MainFrame; +import com.c2kernel.lookup.DomainPath; +import com.c2kernel.lookup.EntityPath; +import com.c2kernel.process.Gateway; +import com.c2kernel.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.status.setText(Language.translate("Please scan or type your barcode to assign in the top field")); + MainFrame.itemFinder.setConsumer(me, "Assign"); + findButton.setEnabled(false); + } + else { + MainFrame.status.setText(""); + MainFrame.itemFinder.clearConsumer(me); + if (selectedMember.getEntityKey() > -1) findButton.setEnabled(true); + } + } + }); + + removeButton.addActionListener(new ActionListener() { + @Override + public void actionPerformed(ActionEvent ae) { + selectedMember.clearEntity(); + 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())); + int memberId = selectedMember.getEntityKey(); + String name = "Empty"; + try { + EntityProxy member = Gateway.getProxyManager().getProxy(new EntityPath(memberId)); + 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) { + MainFrame.status.setText("Assigning entity "+key.getSysKey()+" to slot "+selectedMember.getID()); + try { + selectedMember.assignEntity(key.getSysKey()); + select(selectedMember); + } catch (MembershipException ex) { + JOptionPane.showMessageDialog(null, "Product does not fit in this slot", "Error", JOptionPane.ERROR_MESSAGE); + } + } + + /** + * + */ + @Override + public void push(String name) { + JOptionPane.showMessageDialog(null, "Product is not known in this centre", "Error", JOptionPane.ERROR_MESSAGE); + } + +} + -- cgit v1.2.3