package com.c2kernel.gui.tabs.collection; import java.awt.GridLayout; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import com.c2kernel.gui.ImageLoader; import javax.swing.JButton; import javax.swing.JSplitPane; import com.c2kernel.collection.Aggregation; import com.c2kernel.collection.AggregationMember; import com.c2kernel.collection.Collection; import com.c2kernel.collection.gui.model.AggregationVertexFactory; import com.c2kernel.collection.gui.model.AggregationVertexOutlineCreator; import com.c2kernel.gui.MainFrame; import com.c2kernel.gui.collection.AggregationMemberRenderer; import com.c2kernel.gui.collection.PropertyPanel; import com.c2kernel.gui.collection.SelectedMemberPanel; import com.c2kernel.gui.graph.view.EditorPanel; import com.c2kernel.gui.graph.view.GraphPanel; import com.c2kernel.utils.Language; /** * @version $Revision: 1.5 $ $Date: 2006/09/15 15:02:24 $ * @author $Author: abranson $ */ public class AggregationView extends CollectionView { 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 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); } }); } }