Author: bobtarling Date: 2011-04-17 04:19:38-0700 New Revision: 19245 Added: trunk/modules/dev/src/org/argouml/dev/ModeInspectorPanel.java Modified: trunk/modules/dev/src/org/argouml/dev/DeveloperModule.java
Log: Add the stack of diagram modes to the dev panel Modified: trunk/modules/dev/src/org/argouml/dev/DeveloperModule.java Url: http://argouml.tigris.org/source/browse/argouml/trunk/modules/dev/src/org/argouml/dev/DeveloperModule.java?view=diff&pathrev=19245&r1=19244&r2=19245 ============================================================================== --- trunk/modules/dev/src/org/argouml/dev/DeveloperModule.java (original) +++ trunk/modules/dev/src/org/argouml/dev/DeveloperModule.java 2011-04-17 04:19:38-0700 @@ -55,6 +55,7 @@ import org.argouml.ui.ContextActionFactoryManager; import org.argouml.ui.DetailsPane; import org.argouml.ui.ProjectBrowser; +import org.tigris.gef.base.Globals; import org.tigris.gef.undo.UndoManager; /** @@ -110,6 +111,9 @@ JComponent eventPumpPanel = EventPumpInspectorPanel.getInstance(); devPanel.add("Model Listeners", eventPumpPanel); + ModeInspectorPanel modesPanel = ModeInspectorPanel.getInstance(); + devPanel.add("Modes", modesPanel); + ProjectBrowser.getInstance().addPanel(devPanel, ProjectBrowser.Position.East); @@ -129,6 +133,8 @@ ContextActionFactoryManager.addContextPopupFactory( new DevActionFactory()); + + Globals.curEditor().getModeManager().addModeChangeListener(modesPanel); return true; } Added: trunk/modules/dev/src/org/argouml/dev/ModeInspectorPanel.java Url: http://argouml.tigris.org/source/browse/argouml/trunk/modules/dev/src/org/argouml/dev/ModeInspectorPanel.java?view=markup&pathrev=19245 ============================================================================== --- (empty file) +++ trunk/modules/dev/src/org/argouml/dev/ModeInspectorPanel.java 2011-04-17 04:19:38-0700 @@ -0,0 +1,115 @@ +/* $Id: EventPumpInspectorPanel.java 17807 2010-01-12 18:29:32Z linus $ + ***************************************************************************** + * Copyright (c) 2009 Contributors - see below + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * tfmorris + ***************************************************************************** + * + * Some portions of this file was previously release using the BSD License: + */ + +// Copyright (c) 2006-2007 The Regents of the University of California. All +// Rights Reserved. Permission to use, copy, modify, and distribute this +// software and its documentation without fee, and without a written +// agreement is hereby granted, provided that the above copyright notice +// and this paragraph appear in all copies. This software program and +// documentation are copyrighted by The Regents of the University of +// California. The software program and documentation are supplied "AS +// IS", without any accompanying services from The Regents. The Regents +// does not warrant that the operation of the program will be +// uninterrupted or error-free. The end-user understands that the program +// was developed for research purposes and is advised not to rely +// exclusively on the program for any reason. IN NO EVENT SHALL THE +// UNIVERSITY OF CALIFORNIA BE LIABLE TO ANY PARTY FOR DIRECT, INDIRECT, +// SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES, INCLUDING LOST PROFITS, +// ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN IF +// THE UNIVERSITY OF CALIFORNIA HAS BEEN ADVISED OF THE POSSIBILITY OF +// SUCH DAMAGE. THE UNIVERSITY OF CALIFORNIA SPECIFICALLY DISCLAIMS ANY +// WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +// MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE +// PROVIDED HEREUNDER IS ON AN "AS IS" BASIS, AND THE UNIVERSITY OF +// CALIFORNIA HAS NO OBLIGATIONS TO PROVIDE MAINTENANCE, SUPPORT, +// UPDATES, ENHANCEMENTS, OR MODIFICATIONS. + +package org.argouml.dev; + +import java.awt.BorderLayout; +import java.util.List; + +import javax.swing.JPanel; +import javax.swing.JScrollPane; +import javax.swing.JTree; +import javax.swing.tree.DefaultMutableTreeNode; +import javax.swing.tree.TreeNode; + +import org.tigris.gef.event.ModeChangeEvent; +import org.tigris.gef.event.ModeChangeListener; + +/** + * The event pump inspector displays the contents of the event + * pump. There is no event mechanism to refresh this panel. The + * user must press the refresh button to see the latest state. + * @author Bob Tarling + */ +public final class ModeInspectorPanel extends JPanel implements ModeChangeListener { + + /** + * The instance. + */ + private static final ModeInspectorPanel INSTANCE = + new ModeInspectorPanel(); + + /** + * @return The instance. + */ + public static ModeInspectorPanel getInstance() { + return INSTANCE; + } + + private JScrollPane scroller; + + /** + * Constructor. + */ + private ModeInspectorPanel() { + setLayout(new BorderLayout()); + } + + /** + * Getter provided for the dev module. This supplies a tree + * model of registered listeners. + * @return a root tree node + */ + TreeNode getTree(List modes) { + DefaultMutableTreeNode root = + new DefaultMutableTreeNode("Mode List"); + addSubtree(root, modes); + return root; + } + + private void addSubtree(DefaultMutableTreeNode root, List list) { + DefaultMutableTreeNode node = null; + for (Object o : list) { + node = new DefaultMutableTreeNode(o.toString()); + root.add(node); + } + } + + public void modeChange(ModeChangeEvent mce) { + JTree tree = new JTree(getTree(mce.getModes())); + tree.expandRow(0); + if (scroller != null) { + remove(scroller); + } + scroller = new JScrollPane(tree); + add(scroller); + invalidate(); + validate(); + } + +} ------------------------------------------------------ http://argouml.tigris.org/ds/viewMessage.do?dsForumId=5905&dsMessageId=2720728 To unsubscribe from this discussion, e-mail: [[email protected]].
