Author: mvw
Date: 2008-10-13 11:37:54-0700
New Revision: 15915

Modified:
   trunk/src/argouml-app/src/org/argouml/ui/ProjectSettingsTabProperties.java

Log:
Fix for issue 5457: Project Description field too small.

Modified: 
trunk/src/argouml-app/src/org/argouml/ui/ProjectSettingsTabProperties.java
Url: 
http://argouml.tigris.org/source/browse/argouml/trunk/src/argouml-app/src/org/argouml/ui/ProjectSettingsTabProperties.java?view=diff&rev=15915&p1=trunk/src/argouml-app/src/org/argouml/ui/ProjectSettingsTabProperties.java&p2=trunk/src/argouml-app/src/org/argouml/ui/ProjectSettingsTabProperties.java&r1=15914&r2=15915
==============================================================================
--- trunk/src/argouml-app/src/org/argouml/ui/ProjectSettingsTabProperties.java  
(original)
+++ trunk/src/argouml-app/src/org/argouml/ui/ProjectSettingsTabProperties.java  
2008-10-13 11:37:54-0700
@@ -1,5 +1,5 @@
 // $Id$
-// Copyright (c) 2006-2007 The Regents of the University of California. All
+// Copyright (c) 2006-2008 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
@@ -31,7 +31,10 @@
 
 import javax.swing.JLabel;
 import javax.swing.JPanel;
+import javax.swing.JScrollPane;
+import javax.swing.JTextArea;
 import javax.swing.JTextField;
+import javax.swing.SwingConstants;
 
 import org.argouml.application.api.Argo;
 import org.argouml.application.api.GUISettingsTabInterface;
@@ -45,7 +48,7 @@
  * author name and email, project description. 
  * These are stored in the project file.
  *
- * @author michiel
+ * @author Michiel
  */
 public class ProjectSettingsTabProperties extends JPanel implements
         GUISettingsTabInterface {
@@ -66,7 +69,7 @@
      * in the settings tab.
      * This information is stored in the zargo file.
      */
-    private JTextField description;
+    private JTextArea description;
 
     /**
      * This is where the ArgoUML version that last saved this project
@@ -84,16 +87,20 @@
         top.setLayout(new GridBagLayout());
 
         GridBagConstraints labelConstraints = new GridBagConstraints();
-        labelConstraints.anchor = GridBagConstraints.WEST;
+        /* Labels at the left ... */
+        labelConstraints.anchor = GridBagConstraints.LINE_START;
         labelConstraints.gridy = 0;
         labelConstraints.gridx = 0;
         labelConstraints.gridwidth = 1;
         labelConstraints.gridheight = 1;
         labelConstraints.insets = new Insets(2, 20, 2, 4);
-
+        labelConstraints.anchor = 
+            GridBagConstraints.FIRST_LINE_START;
+        
         GridBagConstraints fieldConstraints = new GridBagConstraints();
-        fieldConstraints.anchor = GridBagConstraints.EAST;
-        fieldConstraints.fill = GridBagConstraints.HORIZONTAL;
+        /* ... and fields at the right. */
+        fieldConstraints.anchor = GridBagConstraints.LINE_END;
+        fieldConstraints.fill = GridBagConstraints.BOTH;
         fieldConstraints.gridy = 0;
         fieldConstraints.gridx = 1;
         fieldConstraints.gridwidth = 3;
@@ -101,6 +108,7 @@
         fieldConstraints.weightx = 1.0;
         fieldConstraints.insets = new Insets(2, 4, 2, 20);
 
+        /* The user's full name: */
         labelConstraints.gridy = 0;
         fieldConstraints.gridy = 0;
         top.add(new JLabel(Translator.localize("label.user")),
@@ -108,6 +116,7 @@
         userFullname = new JTextField();
         top.add(userFullname, fieldConstraints);
 
+        /* The user's email: */
         labelConstraints.gridy = 1;
         fieldConstraints.gridy = 1;
         top.add(new JLabel(Translator.localize("label.email")),
@@ -115,22 +124,42 @@
         userEmail = new JTextField();
         top.add(userEmail, fieldConstraints);
 
+        /* The project description: */
         labelConstraints.gridy = 2;
         fieldConstraints.gridy = 2;
-        top.add(new JLabel(Translator.localize("label.project.description")),
+        fieldConstraints.weighty = 1.0;
+        labelConstraints.weighty = 1.0;
+        JLabel lblDescription = new JLabel(
+                Translator.localize("label.project.description"));
+        lblDescription.setVerticalAlignment(SwingConstants.TOP);
+        top.add(lblDescription,
                 labelConstraints);
-        description = new JTextField();
-        top.add(description, fieldConstraints);
-
+        description = new JTextArea();
+        JScrollPane area = new JScrollPane(description);
+        area.setVerticalScrollBarPolicy(
+                        JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED);
+        description.setMargin(new Insets(3, 3, 3, 3));
+        description.setLineWrap(true);
+        description.setWrapStyleWord(true);
+        top.add(area, fieldConstraints);
+
+        /* This non-editable field shows 
+         * the version of the ArgoUML 
+         * that last saved this project: */
         labelConstraints.gridy = 3;
         fieldConstraints.gridy = 3;
+        fieldConstraints.weighty = 0.0;
+        labelConstraints.weighty = 0.0;
         top.add(new JLabel(Translator.localize("label.argouml.version")),
                 labelConstraints);
         version = new JTextField();
         version.setEditable(false);
         top.add(version, fieldConstraints);
 
-        add(top, BorderLayout.NORTH);
+        /* We need to fill the whole pane, 
+         * so that the description field can 
+         * take all available space: */
+        add(top, BorderLayout.CENTER);
     }
 
     /*
@@ -141,6 +170,7 @@
         userFullname.setText(p.getAuthorname());
         userEmail.setText(p.getAuthoremail());
         description.setText(p.getDescription());
+        description.setCaretPosition(0);
         version.setText(p.getVersion());
     }
 

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to