Author: bobtarling
Date: 2009-04-07 17:04:47-0700
New Revision: 17068

Added:
   
trunk/src/argouml-core-umlpropertypanels/src/org/argouml/core/propertypanels/ui/UMLSingleRowSelector.java

Log:
Refactoring towards a common base class for PopupMenuNewAction and 
PopupMenuNewEvent.

Added: 
trunk/src/argouml-core-umlpropertypanels/src/org/argouml/core/propertypanels/ui/UMLSingleRowSelector.java
Url: 
http://argouml.tigris.org/source/browse/argouml/trunk/src/argouml-core-umlpropertypanels/src/org/argouml/core/propertypanels/ui/UMLSingleRowSelector.java?view=markup&pathrev=17068
==============================================================================
--- (empty file)
+++ 
trunk/src/argouml-core-umlpropertypanels/src/org/argouml/core/propertypanels/ui/UMLSingleRowSelector.java
   2009-04-07 17:04:47-0700
@@ -0,0 +1,95 @@
+// $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 that is know to only
+ * ever contain one item. Preferred, maximum and minimum size are all returned
+ * as the height of one row.
+ * 
+ * @author Bob Tarling
+ * @since 0.23 alpha3
+ */
+public class UMLSingleRowSelector 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 UMLSingleRowSelector(ListModel model) {
+        super(new BorderLayout());
+        scroll = new ScrollList(model, 1);
+        add(scroll);
+        
+        preferredSize = scroll.getPreferredSize();
+
+        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 = super.getMaximumSize();
+        size.height = preferredSize.height;
+        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=1586392

To unsubscribe from this discussion, e-mail: 
[[email protected]].

Reply via email to