svn commit: r17489 - trunk/src/argouml-core-umlpropertypanels/src/org/argouml/core/propertypanels/ui/UMLExpandableRowSelector.java
Bob Tarling <[email protected]>
| Newsgroups | gmane.comp.lang.uml.argouml.cvs |
|---|---|
| Message-ID | <[email protected]> |
Author: bobtarling
Date: 2009-11-18 04:15:15-0800
New Revision: 17489
Added:
trunk/src/argouml-core-umlpropertypanels/src/org/argouml/core/propertypanels/ui/UMLExpandableRowSelector.java
Log:
Wrap ScrollList instances inside an ExpandableRowSelector
The intention is the JList that take up a lot of screen estate become shrinkable and expandable so the users can show more of what they consider important
Added: trunk/src/argouml-core-umlpropertypanels/src/org/argouml/core/propertypanels/ui/UMLExpandableRowSelector.java
Url: http://argouml.tigris.org/source/browse/argouml/trunk/src/argouml-core-umlpropertypanels/src/org/argouml/core/propertypanels/ui/UMLExpandableRowSelector.java?view=markup&pathrev=17489
==============================================================================
--- (empty file)
+++ trunk/src/argouml-core-umlpropertypanels/src/org/argouml/core/propertypanels/ui/UMLExpandableRowSelector.java 2009-11-18 04:15:15-0800
@@ -0,0 +1,98 @@
+// $Id: UMLSingleRowSelector.java 15914 2008-10-13 17:10:00Z bobtarling $
+// Copyright (c) 1996-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.core.propertypanels.ui;
+
+import java.awt.BorderLayout;
+import java.awt.Dimension;
+import javax.swing.JPanel;
+import javax.swing.JScrollPane;
+import javax.swing.ListModel;
+
+/**
+ * A control for displaying the contents of a list model elements in a panel
+ * that can be expanded to take maximum possible screen space or shrunk to
+ * minimum at the user discretion.
+ *
+ * @author Bob Tarling
+ * @since 0.29.2
+ */
+public class UMLExpandableRowSelector extends JPanel {
+
+ /**
+ * The scrollpane that will contain the list
+ */
+ private JScrollPane scroll;
+
+ private Dimension preferredSize = null;
+
+ /**
+ * Constructor
+ * @param model The single item list model
+ */
+ public UMLExpandableRowSelector(UMLModelElementListModel model) {
+ super(new BorderLayout());
+ scroll = new ScrollList(model, 1);
+ add(scroll);
+
+ preferredSize = scroll.getPreferredSize();
+
+ remove(scroll);
+ scroll = new ScrollList(model);
+ add(scroll);
+
+ scroll.setVerticalScrollBarPolicy(
+ JScrollPane.VERTICAL_SCROLLBAR_NEVER);
+
+ scroll.setHorizontalScrollBarPolicy(
+ JScrollPane.HORIZONTAL_SCROLLBAR_NEVER);
+ }
+
+ /**
+ * Make sure the control is always a fixed height
+ * @return the minimum size as the height of one row in a JList
+ */
+ public Dimension getMinimumSize() {
+ Dimension size = super.getMinimumSize();
+ size.height = preferredSize.height;
+ return size;
+ }
+
+ /**
+ * Make sure the control is always a fixed height
+ * @return the maximum size as the height of one row in a JList
+ */
+ public Dimension getMaximumSize() {
+ Dimension size = scroll.getMaximumSize();
+ return size;
+ }
+
+
+ /**
+ * @return the preferred size as the height of one row in a JList
+ */
+ public Dimension getPreferredSize() {
+ return preferredSize;
+ }
+}
------------------------------------------------------
http://argouml.tigris.org/ds/viewMessage.do?dsForumId=5905&dsMessageId=2419480
To unsubscribe from this discussion, e-mail: [[email protected]].