summaryrefslogtreecommitdiff
path: root/src/main/java/org/cristalise/gui/tabs/collection/AggregationView.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/org/cristalise/gui/tabs/collection/AggregationView.java')
-rw-r--r--src/main/java/org/cristalise/gui/tabs/collection/AggregationView.java91
1 files changed, 91 insertions, 0 deletions
diff --git a/src/main/java/org/cristalise/gui/tabs/collection/AggregationView.java b/src/main/java/org/cristalise/gui/tabs/collection/AggregationView.java
new file mode 100644
index 0000000..141fcb1
--- /dev/null
+++ b/src/main/java/org/cristalise/gui/tabs/collection/AggregationView.java
@@ -0,0 +1,91 @@
+package org.cristalise.gui.tabs.collection;
+import java.awt.GridLayout;
+import java.awt.event.ActionEvent;
+import java.awt.event.ActionListener;
+
+import javax.swing.JButton;
+import javax.swing.JSplitPane;
+
+import org.cristalise.gui.ImageLoader;
+import org.cristalise.gui.MainFrame;
+import org.cristalise.gui.collection.AggregationMemberRenderer;
+import org.cristalise.gui.collection.PropertyPanel;
+import org.cristalise.gui.collection.SelectedMemberPanel;
+import org.cristalise.gui.graph.view.EditorPanel;
+import org.cristalise.gui.graph.view.GraphPanel;
+import org.cristalise.kernel.collection.Aggregation;
+import org.cristalise.kernel.collection.AggregationMember;
+import org.cristalise.kernel.collection.AggregationVertexFactory;
+import org.cristalise.kernel.collection.AggregationVertexOutlineCreator;
+import org.cristalise.kernel.collection.Collection;
+import org.cristalise.kernel.utils.Language;
+
+/**
+ * @version $Revision: 1.5 $ $Date: 2006/09/15 15:02:24 $
+ * @author $Author: abranson $
+ */
+public class AggregationView extends CollectionView<AggregationMember>
+{
+ protected JButton mSaveButton = new JButton(ImageLoader.findImage("graph/save.png"));
+ protected JButton mHistoryButton = new JButton(ImageLoader.findImage("graph/history.png"));
+ protected JButton[] mOtherToolBarButtons = { mSaveButton, mHistoryButton };
+ // Graph editor panel
+ protected EditorPanel mEditorPanel;
+ // Objects to view/modify the properties of the selected activity
+ protected PropertyPanel mPropertyPanel;
+ protected JSplitPane mSplitPane;
+ private final AggregationVertexFactory mAggregationVertexFactory = new AggregationVertexFactory();
+ private final AggregationMemberRenderer mAggregationMemberRenderer = new AggregationMemberRenderer();
+ public AggregationView()
+ {
+ super();
+ setLayout(new GridLayout(1,1));
+ mPropertyPanel = new PropertyPanel();
+ mEditorPanel = new EditorPanel(null, mAggregationVertexFactory, new AggregationVertexOutlineCreator(), false, mOtherToolBarButtons, new GraphPanel(null, mAggregationMemberRenderer));
+ createLayout();
+ createListeners();
+ mPropertyPanel.setGraphModelManager(mEditorPanel.mGraphModelManager);
+ mPropertyPanel.createLayout(new SelectedMemberPanel());
+ mEditorPanel.setEditable(MainFrame.isAdmin);
+ }
+
+ @Override
+ public void setCollection(Collection<AggregationMember> contents)
+ {
+ thisColl = contents;
+ Aggregation agg = (Aggregation)thisColl;
+ mPropertyPanel.setCollection(agg);
+ mAggregationMemberRenderer.setAggregation(agg);
+ mEditorPanel.mGraphModelManager.setModel(agg.getLayout());
+ mEditorPanel.updateVertexTypes(agg.getVertexTypeNameAndConstructionInfo());
+ mEditorPanel.enterSelectMode();
+ mAggregationVertexFactory.setCreationContext(agg);
+ }
+ public void createLayout()
+ {
+ mSaveButton.setToolTipText(Language.translate("Save Layout Changes"));
+ mSplitPane = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT, mEditorPanel, mPropertyPanel);
+ mSplitPane.setDividerSize(5);
+ add(mSplitPane);
+ }
+
+ protected void createListeners()
+ {
+ mSaveButton.addActionListener(new ActionListener()
+ {
+ @Override
+ public void actionPerformed(ActionEvent ae)
+ {
+ saveCollection();
+ }
+ });
+ mHistoryButton.addActionListener(new ActionListener()
+ {
+ @Override
+ public void actionPerformed(ActionEvent ae)
+ {
+ new CollectionHistoryWindow(item, (Aggregation)thisColl);
+ }
+ });
+ }
+}