/* Violet - A program for editing UML diagrams. Copyright (C) 2007 Cay S. Horstmann (http://horstmann.com) Alexandre de Pellegrin (http://alexdp.free.fr); This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ package com.horstmann.violet.workspace.sidebar; import java.awt.Component; import java.util.HashMap; import java.util.Map; import javax.swing.JPanel; import com.horstmann.violet.workspace.IWorkspace; import com.horstmann.violet.workspace.sidebar.colortools.ColorToolsBarPanel; import com.horstmann.violet.workspace.sidebar.colortools.IColorChoiceBar; import com.horstmann.violet.workspace.sidebar.editortools.EditorToolsPanel; import com.horstmann.violet.workspace.sidebar.graphtools.GraphToolsBar; import com.horstmann.violet.workspace.sidebar.graphtools.IGraphToolsBar; import com.horstmann.violet.workspace.sidebar.optionaltools.OptionalToolsPanel; public class SideBar extends JPanel implements ISideBar { public SideBar(IWorkspace diagramPanel) { this.diagramPanel = diagramPanel; setupUI(); } private void setupUI() { setUI(new SideBarUI(this)); } /* * (non-Javadoc) * * @see * com.horstmann.violet.framework.display.clipboard.sidebar.ISideBar#addElement(com.horstmann.violet.framework.display.clipboard * .sidebar.ISideBarElement, java.lang.String) */ public void addElement(ISideBarElement element, String title) { element.install(this.diagramPanel); this.externalContributionElements.put(element, title); } public IGraphToolsBar getGraphToolsBar() { if (this.graphToolsBar == null) { this.graphToolsBar = new GraphToolsBar(); this.graphToolsBar.install(this.diagramPanel); } return this.graphToolsBar; } protected ISideBarElement getEditorToolsBar() { if (this.editorToolsBar == null) { this.editorToolsBar = new EditorToolsPanel(); this.editorToolsBar.install(this.diagramPanel); } return this.editorToolsBar; } protected ISideBarElement getOptionalToolsBar() { if (this.optionalToolsBar == null) { this.optionalToolsBar = new OptionalToolsPanel(); this.optionalToolsBar.install(this.diagramPanel); } return this.optionalToolsBar; } public IColorChoiceBar getColorChoiceBar() { if (this.colorChoiceBar == null) { this.colorChoiceBar = new ColorToolsBarPanel(); this.colorChoiceBar.install(this.diagramPanel); } return this.colorChoiceBar; } protected Map<ISideBarElement, String> getExternalContributionElements() { return this.externalContributionElements; } /* * (non-Javadoc) * * @see com.horstmann.violet.framework.display.clipboard.sidebar.ISideBar#getAWTComponent() */ public Component getAWTComponent() { return this; } private IWorkspace diagramPanel; private IGraphToolsBar graphToolsBar; private ISideBarElement editorToolsBar; private ISideBarElement optionalToolsBar; private IColorChoiceBar colorChoiceBar; private Map<ISideBarElement, String> externalContributionElements = new HashMap<ISideBarElement, String>(); }