You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cayenne.apache.org by aa...@apache.org on 2010/08/24 17:17:52 UTC

svn commit: r988586 [2/3] - in /cayenne/main/trunk: docs/doc/src/main/resources/ framework/cayenne-modeler/ framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/action/ f...

Modified: cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/SelectQueryMainTab.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/SelectQueryMainTab.java?rev=988586&r1=988585&r2=988586&view=diff
==============================================================================
--- cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/SelectQueryMainTab.java (original)
+++ cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/SelectQueryMainTab.java Tue Aug 24 15:17:45 2010
@@ -39,8 +39,8 @@ import org.apache.cayenne.exp.Expression
 import org.apache.cayenne.exp.parser.ASTPath;
 import org.apache.cayenne.map.DataMap;
 import org.apache.cayenne.map.Entity;
+import org.apache.cayenne.modeler.Application;
 import org.apache.cayenne.modeler.ProjectController;
-import org.apache.cayenne.modeler.util.CayenneWidgetFactory;
 import org.apache.cayenne.modeler.util.CellRenderers;
 import org.apache.cayenne.modeler.util.Comparators;
 import org.apache.cayenne.modeler.util.ExpressionConvertor;
@@ -90,7 +90,7 @@ public class SelectQueryMainTab extends 
             }
         };
 
-        queryRoot = CayenneWidgetFactory.createComboBox();
+        queryRoot = Application.getWidgetFactory().createComboBox();
         AutoCompletion.enable(queryRoot);
         queryRoot.setRenderer(CellRenderers.listRendererWithIcons());
 

Modified: cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/datanode/AdapterView.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/datanode/AdapterView.java?rev=988586&r1=988585&r2=988586&view=diff
==============================================================================
--- cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/datanode/AdapterView.java (original)
+++ cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/datanode/AdapterView.java Tue Aug 24 15:17:45 2010
@@ -24,7 +24,7 @@ import java.awt.BorderLayout;
 import javax.swing.JPanel;
 import javax.swing.JTextField;
 
-import org.apache.cayenne.modeler.util.CayenneWidgetFactory;
+import org.apache.cayenne.modeler.util.JTextFieldUndoable;
 
 import com.jgoodies.forms.builder.DefaultFormBuilder;
 import com.jgoodies.forms.layout.FormLayout;
@@ -34,7 +34,7 @@ public class AdapterView extends JPanel 
     protected JTextField customAdapter;
 
     public AdapterView() {
-        this.customAdapter = CayenneWidgetFactory.createUndoableTextField();
+        this.customAdapter = new JTextFieldUndoable();
 
         // assemble
 

Modified: cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/datanode/CustomDataSourceView.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/datanode/CustomDataSourceView.java?rev=988586&r1=988585&r2=988586&view=diff
==============================================================================
--- cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/datanode/CustomDataSourceView.java (original)
+++ cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/datanode/CustomDataSourceView.java Tue Aug 24 15:17:45 2010
@@ -24,20 +24,18 @@ import java.awt.BorderLayout;
 import javax.swing.JPanel;
 import javax.swing.JTextField;
 
-import org.apache.cayenne.modeler.util.CayenneWidgetFactory;
+import org.apache.cayenne.modeler.util.JTextFieldUndoable;
 
 import com.jgoodies.forms.builder.DefaultFormBuilder;
 import com.jgoodies.forms.layout.FormLayout;
 
-/**
- */
 public class CustomDataSourceView extends JPanel {
 
     protected JTextField locationHint;
 
     public CustomDataSourceView() {
 
-        locationHint = CayenneWidgetFactory.createUndoableTextField();
+        locationHint = new JTextFieldUndoable();
 
         // assemble
         FormLayout layout = new FormLayout("right:80dlu, 3dlu, fill:200dlu", "");

Modified: cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/datanode/DBCPDataSourceView.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/datanode/DBCPDataSourceView.java?rev=988586&r1=988585&r2=988586&view=diff
==============================================================================
--- cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/datanode/DBCPDataSourceView.java (original)
+++ cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/datanode/DBCPDataSourceView.java Tue Aug 24 15:17:45 2010
@@ -16,8 +16,6 @@
  *  specific language governing permissions and limitations
  *  under the License.
  ****************************************************************/
-
-
 package org.apache.cayenne.modeler.editor.datanode;
 
 import java.awt.BorderLayout;
@@ -25,20 +23,18 @@ import java.awt.BorderLayout;
 import javax.swing.JPanel;
 import javax.swing.JTextField;
 
-import org.apache.cayenne.modeler.util.CayenneWidgetFactory;
+import org.apache.cayenne.modeler.util.JTextFieldUndoable;
 
 import com.jgoodies.forms.builder.DefaultFormBuilder;
 import com.jgoodies.forms.layout.FormLayout;
 
-/**
- */
 public class DBCPDataSourceView extends JPanel {
 
     protected JTextField propertiesFile;
 
     public DBCPDataSourceView() {
 
-        propertiesFile = CayenneWidgetFactory.createUndoableTextField();
+        propertiesFile = new JTextFieldUndoable();
 
         // assemble
         FormLayout layout = new FormLayout("right:80dlu, 3dlu, fill:200dlu", "");

Modified: cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/datanode/JDBCDataSourceView.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/datanode/JDBCDataSourceView.java?rev=988586&r1=988585&r2=988586&view=diff
==============================================================================
--- cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/datanode/JDBCDataSourceView.java (original)
+++ cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/datanode/JDBCDataSourceView.java Tue Aug 24 15:17:45 2010
@@ -26,7 +26,7 @@ import javax.swing.JPanel;
 import javax.swing.JPasswordField;
 import javax.swing.JTextField;
 
-import org.apache.cayenne.modeler.util.CayenneWidgetFactory;
+import org.apache.cayenne.modeler.util.JTextFieldUndoable;
 
 import com.jgoodies.forms.builder.PanelBuilder;
 import com.jgoodies.forms.layout.CellConstraints;
@@ -34,46 +34,35 @@ import com.jgoodies.forms.layout.FormLay
 
 public class JDBCDataSourceView extends JPanel {
 
-    protected JTextField     driver;
-    protected JTextField     url;
-    protected JTextField     userName;
+    protected JTextField driver;
+    protected JTextField url;
+    protected JTextField userName;
     protected JPasswordField password;
 
-    protected JTextField     minConnections;
-    protected JTextField     maxConnections;
-    protected JButton        syncWithLocal;
-
-
-
-
-
-
+    protected JTextField minConnections;
+    protected JTextField maxConnections;
+    protected JButton syncWithLocal;
 
     public JDBCDataSourceView() {
 
-        driver           = CayenneWidgetFactory.createUndoableTextField();
-        url              = CayenneWidgetFactory.createUndoableTextField();
-        userName         = CayenneWidgetFactory.createUndoableTextField();
-        password         = new JPasswordField();
-        minConnections   = CayenneWidgetFactory.createUndoableTextField(6);
-        maxConnections   = CayenneWidgetFactory.createUndoableTextField(6);
-        syncWithLocal    = new JButton("Sync with Local");
+        driver = new JTextFieldUndoable();
+        url = new JTextFieldUndoable();
+        userName = new JTextFieldUndoable();
+        password = new JPasswordField();
+        minConnections = new JTextFieldUndoable(6);
+        maxConnections = new JTextFieldUndoable(6);
+        syncWithLocal = new JButton("Sync with Local");
         syncWithLocal.setToolTipText("Update from local DataSource");
 
-
-
         // assemble
         CellConstraints cc = new CellConstraints();
-//        FormLayout layout = new FormLayout(
-//                "right:80dlu, 3dlu, fill:50dlu, 3dlu, fill:74dlu, 3dlu, fill:70dlu",
-//                "p, 3dlu, p, 3dlu, p, 3dlu, p, 3dlu, p, 3dlu, p, 3dlu, p");
-        FormLayout layout =
-          new FormLayout("right:80dlu, 3dlu, fill:50dlu, 3dlu, fill:74dlu, 3dlu, fill:70dlu", // Columns
-                         "p, 3dlu, p, 3dlu, p, 3dlu, p, 3dlu, p, 3dlu, p, 3dlu, p, 3dlu, p, 3dlu, p, 3dlu, p, 3dlu, p, 3dlu, p, 3dlu, p"); // Rows
+        FormLayout layout = new FormLayout(
+                "right:80dlu, 3dlu, fill:50dlu, 3dlu, fill:74dlu, 3dlu, fill:70dlu", // Columns
+                "p, 3dlu, p, 3dlu, p, 3dlu, p, 3dlu, p, 3dlu, p, 3dlu, p, 3dlu, p, 3dlu, p, 3dlu, p, 3dlu, p, 3dlu, p, 3dlu, p"); // Rows
 
         PanelBuilder builder = new PanelBuilder(layout);
         builder.setDefaultDialogBorder();
-        
+
         builder.addSeparator("JDBC Configuration", cc.xywh(1, 1, 7, 1));
         builder.addLabel("JDBC Driver:", cc.xy(1, 3));
         builder.add(driver, cc.xywh(3, 3, 5, 1));

Modified: cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/datanode/JNDIDataSourceView.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/datanode/JNDIDataSourceView.java?rev=988586&r1=988585&r2=988586&view=diff
==============================================================================
--- cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/datanode/JNDIDataSourceView.java (original)
+++ cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/datanode/JNDIDataSourceView.java Tue Aug 24 15:17:45 2010
@@ -24,20 +24,18 @@ import java.awt.BorderLayout;
 import javax.swing.JPanel;
 import javax.swing.JTextField;
 
-import org.apache.cayenne.modeler.util.CayenneWidgetFactory;
+import org.apache.cayenne.modeler.util.JTextFieldUndoable;
 
 import com.jgoodies.forms.builder.DefaultFormBuilder;
 import com.jgoodies.forms.layout.FormLayout;
 
-/**
- */
 public class JNDIDataSourceView extends JPanel {
 
     protected JTextField jndiPath;
 
     public JNDIDataSourceView() {
 
-        jndiPath = CayenneWidgetFactory.createUndoableTextField();
+        jndiPath = new JTextFieldUndoable();
 
         // assemble
         FormLayout layout = new FormLayout("right:80dlu, 3dlu, fill:200dlu", "");

Modified: cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/datanode/MainDataNodeView.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/datanode/MainDataNodeView.java?rev=988586&r1=988585&r2=988586&view=diff
==============================================================================
--- cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/datanode/MainDataNodeView.java (original)
+++ cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/datanode/MainDataNodeView.java Tue Aug 24 15:17:45 2010
@@ -29,8 +29,9 @@ import javax.swing.JLabel;
 import javax.swing.JPanel;
 import javax.swing.JTextField;
 
+import org.apache.cayenne.modeler.Application;
 import org.apache.cayenne.modeler.ProjectController;
-import org.apache.cayenne.modeler.util.CayenneWidgetFactory;
+import org.apache.cayenne.modeler.util.JTextFieldUndoable;
 
 import com.jgoodies.forms.builder.DefaultFormBuilder;
 import com.jgoodies.forms.layout.FormLayout;
@@ -52,13 +53,13 @@ public class MainDataNodeView extends JP
     public MainDataNodeView(final ProjectController projectController) {
 
         // create widgets
-        this.dataNodeName = CayenneWidgetFactory.createUndoableTextField();
+        this.dataNodeName = new JTextFieldUndoable();
 
-        this.factories = CayenneWidgetFactory.createUndoableComboBox();
+        this.factories = Application.getWidgetFactory().createUndoableComboBox();
 
-        this.localDataSources = CayenneWidgetFactory.createUndoableComboBox();
+        this.localDataSources = Application.getWidgetFactory().createUndoableComboBox();
 
-        this.schemaUpdateStrategy = CayenneWidgetFactory.createUndoableComboBox();
+        this.schemaUpdateStrategy = Application.getWidgetFactory().createUndoableComboBox();
         this.dataSourceDetailLayout = new CardLayout();
         this.dataSourceDetail = new JPanel(dataSourceDetailLayout);
 

Modified: cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/datanode/PasswordEncoderView.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/datanode/PasswordEncoderView.java?rev=988586&r1=988585&r2=988586&view=diff
==============================================================================
--- cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/datanode/PasswordEncoderView.java (original)
+++ cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/datanode/PasswordEncoderView.java Tue Aug 24 15:17:45 2010
@@ -33,98 +33,105 @@ import javax.swing.JTextField;
 
 import org.apache.cayenne.configuration.PasswordEncoding;
 import org.apache.cayenne.conn.DataSourceInfo;
-import org.apache.cayenne.modeler.util.CayenneWidgetFactory;
+import org.apache.cayenne.modeler.Application;
+import org.apache.cayenne.modeler.util.JTextFieldUndoable;
 
 import com.jgoodies.forms.builder.PanelBuilder;
 import com.jgoodies.forms.layout.CellConstraints;
 import com.jgoodies.forms.layout.FormLayout;
 
+public class PasswordEncoderView extends JPanel {
 
-public class PasswordEncoderView extends JPanel{
-    
-    protected JComboBox      passwordEncoder;
-    protected JComboBox      passwordLocation;
-    protected JTextField     passwordKey;
-    protected JTextField     passwordSource;
-    protected JLabel         passwordSourceLabel;
-    
-    private static final String PASSWORD_CLASSPATH  = "Classpath Search (File System)";
+    protected JComboBox passwordEncoder;
+    protected JComboBox passwordLocation;
+    protected JTextField passwordKey;
+    protected JTextField passwordSource;
+    protected JLabel passwordSourceLabel;
+
+    private static final String PASSWORD_CLASSPATH = "Classpath Search (File System)";
     private static final String PASSWORD_EXECUTABLE = "Executable Program";
-    private static final String PASSWORD_MODEL      = "Cayenne Model";
-    private static final String PASSWORD_URL        = "URL (file:, http:, etc)";
-    
+    private static final String PASSWORD_MODEL = "Cayenne Model";
+    private static final String PASSWORD_URL = "URL (file:, http:, etc)";
+
     private static final Object[] PASSWORD_LOCATIONS = new Object[] {
-        DataSourceInfo.PASSWORD_LOCATION_MODEL,
-        DataSourceInfo.PASSWORD_LOCATION_CLASSPATH,
-        DataSourceInfo.PASSWORD_LOCATION_EXECUTABLE,
-        DataSourceInfo.PASSWORD_LOCATION_URL };
-    
+            DataSourceInfo.PASSWORD_LOCATION_MODEL,
+            DataSourceInfo.PASSWORD_LOCATION_CLASSPATH,
+            DataSourceInfo.PASSWORD_LOCATION_EXECUTABLE,
+            DataSourceInfo.PASSWORD_LOCATION_URL
+    };
+
     private static final Map<String, String> passwordSourceLabels = new TreeMap<String, String>();
 
-    static
-    {
-      passwordSourceLabels.put(DataSourceInfo.PASSWORD_LOCATION_MODEL, PASSWORD_MODEL);
-      passwordSourceLabels.put(DataSourceInfo.PASSWORD_LOCATION_CLASSPATH, PASSWORD_CLASSPATH);
-      passwordSourceLabels.put(DataSourceInfo.PASSWORD_LOCATION_EXECUTABLE, PASSWORD_EXECUTABLE);
-      passwordSourceLabels.put(DataSourceInfo.PASSWORD_LOCATION_URL, PASSWORD_URL);
-    }
-    
-    final class PasswordLocationRenderer extends DefaultListCellRenderer
-    {
-      public Component getListCellRendererComponent(JList list,
-                                                    Object object,
-                                                    int arg2,
-                                                    boolean arg3,
-                                                    boolean arg4)
-      {
-        if (object != null)
-          object = passwordSourceLabels.get(object);
-        else
-          object = PASSWORD_MODEL;
-
-        return super.getListCellRendererComponent(list, object, arg2, arg3, arg4);
-      }
-    }
-    
-    public PasswordEncoderView(){
-        
-        this.passwordEncoder  = CayenneWidgetFactory.createUndoableComboBox();
-        this.passwordLocation = CayenneWidgetFactory.createUndoableComboBox();
-        this.passwordSource   = CayenneWidgetFactory.createUndoableTextField();
-        this.passwordKey      = CayenneWidgetFactory.createUndoableTextField();
-        
-
-        
-        // init combo box choices                                                                                                                                                                
-        passwordEncoder.setModel(new DefaultComboBoxModel(PasswordEncoding.standardEncoders));
+    static {
+        passwordSourceLabels.put(DataSourceInfo.PASSWORD_LOCATION_MODEL, PASSWORD_MODEL);
+        passwordSourceLabels.put(
+                DataSourceInfo.PASSWORD_LOCATION_CLASSPATH,
+                PASSWORD_CLASSPATH);
+        passwordSourceLabels.put(
+                DataSourceInfo.PASSWORD_LOCATION_EXECUTABLE,
+                PASSWORD_EXECUTABLE);
+        passwordSourceLabels.put(DataSourceInfo.PASSWORD_LOCATION_URL, PASSWORD_URL);
+    }
+
+    final class PasswordLocationRenderer extends DefaultListCellRenderer {
+
+        public Component getListCellRendererComponent(
+                JList list,
+                Object object,
+                int arg2,
+                boolean arg3,
+                boolean arg4) {
+            if (object != null)
+                object = passwordSourceLabels.get(object);
+            else
+                object = PASSWORD_MODEL;
+
+            return super.getListCellRendererComponent(list, object, arg2, arg3, arg4);
+        }
+    }
+
+    public PasswordEncoderView() {
+
+        this.passwordEncoder = Application.getWidgetFactory().createUndoableComboBox();
+        this.passwordLocation = Application.getWidgetFactory().createUndoableComboBox();
+        this.passwordSource = new JTextFieldUndoable();
+        this.passwordKey = new JTextFieldUndoable();
+
+        // init combo box choices
+        passwordEncoder.setModel(new DefaultComboBoxModel(
+                PasswordEncoding.standardEncoders));
         passwordEncoder.setEditable(true);
 
-        passwordLocation = CayenneWidgetFactory.createUndoableComboBox();
+        passwordLocation = Application.getWidgetFactory().createUndoableComboBox();
         passwordLocation.setRenderer(new PasswordLocationRenderer());
 
-        DefaultComboBoxModel passwordLocationModel = new DefaultComboBoxModel(PASSWORD_LOCATIONS);
+        DefaultComboBoxModel passwordLocationModel = new DefaultComboBoxModel(
+                PASSWORD_LOCATIONS);
 
         passwordLocation.setModel(passwordLocationModel);
 
-        
         CellConstraints cc = new CellConstraints();
 
-        FormLayout layout =
-            new FormLayout("right:80dlu, 3dlu, fill:50dlu, 3dlu, fill:74dlu, 3dlu, fill:70dlu", // Columns
-                   "p, 3dlu, p, 3dlu, p, 3dlu, p, 3dlu, p, 3dlu, p, 3dlu, p, 3dlu, p, 3dlu, p, 3dlu, p, 3dlu, p, 3dlu, p, 3dlu, p"); // Rows
-        
+        FormLayout layout = new FormLayout(
+                "right:80dlu, 3dlu, fill:50dlu, 3dlu, fill:74dlu, 3dlu, fill:70dlu", // Columns
+                "p, 3dlu, p, 3dlu, p, 3dlu, p, 3dlu, p, 3dlu, p, 3dlu, p, 3dlu, p, 3dlu, p, 3dlu, p, 3dlu, p, 3dlu, p, 3dlu, p"); // Rows
+
         PanelBuilder builder = new PanelBuilder(layout);
         builder.setDefaultDialogBorder();
-        
+
         builder.addSeparator("Encoder", cc.xywh(1, 1, 7, 1));
-        
+
         builder.addLabel("Password Encoder:", cc.xy(1, 11));
         builder.add(passwordEncoder, cc.xywh(3, 11, 5, 1));
 
         builder.addLabel("Password Encoder Key:", cc.xy(1, 13));
         builder.add(passwordKey, cc.xywh(3, 13, 5, 1));
 
-        builder.addLabel("Note: Cayenne supplied encoders do not use a key.", cc.xywh(3, 15, 5, 1));
+        builder.addLabel("Note: Cayenne supplied encoders do not use a key.", cc.xywh(
+                3,
+                15,
+                5,
+                1));
 
         builder.addLabel("Password Location:", cc.xy(1, 17));
         builder.add(passwordLocation, cc.xywh(3, 17, 5, 1));
@@ -132,50 +139,44 @@ public class PasswordEncoderView extends
         passwordSourceLabel = builder.addLabel("Password Source:", cc.xy(1, 19));
         builder.add(passwordSource, cc.xywh(3, 19, 5, 1));
 
-
         this.setLayout(new BorderLayout());
         this.add(builder.getPanel(), BorderLayout.CENTER);
 
     }
-    
+
     /**
      * @return the passwordEncoder
      */
-    public JComboBox getPasswordEncoder()
-    {
-      return passwordEncoder;
+    public JComboBox getPasswordEncoder() {
+        return passwordEncoder;
     }
 
     /**
      * @return the passwordLocation
      */
-    public JComboBox getPasswordLocation()
-    {
-      return passwordLocation;
+    public JComboBox getPasswordLocation() {
+        return passwordLocation;
     }
 
     /**
      * @return the passwordKey
      */
-    public JTextField getPasswordKey()
-    {
-      return passwordKey;
+    public JTextField getPasswordKey() {
+        return passwordKey;
     }
 
     /**
      * @return the passwordSource
      */
-    public JTextField getPasswordSource()
-    {
-      return passwordSource;
+    public JTextField getPasswordSource() {
+        return passwordSource;
     }
 
     /**
      * @return the passwordLocationLabel
      */
-    public JLabel getPasswordSourceLabel()
-    {
-      return passwordSourceLabel;
+    public JLabel getPasswordSourceLabel() {
+        return passwordSourceLabel;
     }
 
 }

Modified: cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/dbentity/DbEntityAttributeTab.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/dbentity/DbEntityAttributeTab.java?rev=988586&r1=988585&r2=988586&view=diff
==============================================================================
--- cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/dbentity/DbEntityAttributeTab.java (original)
+++ cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/dbentity/DbEntityAttributeTab.java Tue Aug 24 15:17:45 2010
@@ -54,7 +54,7 @@ import org.apache.cayenne.modeler.event.
 import org.apache.cayenne.modeler.event.TablePopupHandler;
 import org.apache.cayenne.modeler.pref.TableColumnPreferences;
 import org.apache.cayenne.modeler.util.CayenneTable;
-import org.apache.cayenne.modeler.util.CayenneWidgetFactory;
+import org.apache.cayenne.modeler.util.WidgetFactory;
 import org.apache.cayenne.modeler.util.ModelerUtil;
 import org.apache.cayenne.modeler.util.PanelFactory;
 import org.apache.cayenne.modeler.util.UIUtil;
@@ -86,18 +86,36 @@ public class DbEntityAttributeTab extend
 
         JToolBar toolBar = new JToolBar();
         Application app = Application.getInstance();
-        toolBar.add(app.getActionManager().getAction(CreateObjEntityAction.class).buildButton());
-        toolBar.add(app.getActionManager().getAction(CreateAttributeAction.class).buildButton());
-        toolBar.add(app.getActionManager().getAction(DbEntitySyncAction.class).buildButton());
+        toolBar.add(app
+                .getActionManager()
+                .getAction(CreateObjEntityAction.class)
+                .buildButton());
+        toolBar.add(app
+                .getActionManager()
+                .getAction(CreateAttributeAction.class)
+                .buildButton());
+        toolBar.add(app
+                .getActionManager()
+                .getAction(DbEntitySyncAction.class)
+                .buildButton());
 
         toolBar.addSeparator();
 
         toolBar.addSeparator();
-        toolBar.add(app.getActionManager().getAction(RemoveAttributeAction.class).buildButton());
+        toolBar.add(app
+                .getActionManager()
+                .getAction(RemoveAttributeAction.class)
+                .buildButton());
 
         toolBar.addSeparator();
-        toolBar.add(app.getActionManager().getAction(CutAttributeAction.class).buildButton());
-        toolBar.add(app.getActionManager().getAction(CopyAttributeAction.class).buildButton());
+        toolBar.add(app
+                .getActionManager()
+                .getAction(CutAttributeAction.class)
+                .buildButton());
+        toolBar.add(app
+                .getActionManager()
+                .getAction(CopyAttributeAction.class)
+                .buildButton());
         toolBar.add(app.getActionManager().getAction(PasteAction.class).buildButton());
 
         add(toolBar, BorderLayout.NORTH);
@@ -113,11 +131,18 @@ public class DbEntityAttributeTab extend
          * Create and install a popup
          */
         JPopupMenu popup = new JPopupMenu();
-        popup.add(app.getActionManager().getAction(RemoveAttributeAction.class).buildMenu());
+        popup.add(app
+                .getActionManager()
+                .getAction(RemoveAttributeAction.class)
+                .buildMenu());
 
         popup.addSeparator();
         popup.add(app.getActionManager().getAction(CutAttributeAction.class).buildMenu());
-        popup.add(app.getActionManager().getAction(CopyAttributeAction.class).buildMenu());
+        popup
+                .add(app
+                        .getActionManager()
+                        .getAction(CopyAttributeAction.class)
+                        .buildMenu());
         popup.add(app.getActionManager().getAction(PasteAction.class).buildMenu());
 
         TablePopupHandler.install(table, popup);
@@ -225,14 +250,14 @@ public class DbEntityAttributeTab extend
         TableColumn col = table.getColumnModel().getColumn(model.typeColumnInd());
 
         String[] types = TypesMapping.getDatabaseTypes();
-        JComboBox comboBox = CayenneWidgetFactory.createComboBox(types, true);
+        JComboBox comboBox = Application.getWidgetFactory().createComboBox(types, true);
 
         // Types.NULL makes no sense as a column type
         comboBox.removeItem("NULL");
 
         AutoCompletion.enable(comboBox);
 
-        col.setCellEditor(CayenneWidgetFactory.createCellEditor(comboBox));
+        col.setCellEditor(Application.getWidgetFactory().createCellEditor(comboBox));
 
         table.getSelectionModel().addListSelectionListener(this);
 

Modified: cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/dbentity/DbEntityRelationshipTab.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/dbentity/DbEntityRelationshipTab.java?rev=988586&r1=988585&r2=988586&view=diff
==============================================================================
--- cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/dbentity/DbEntityRelationshipTab.java (original)
+++ cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/dbentity/DbEntityRelationshipTab.java Tue Aug 24 15:17:45 2010
@@ -68,7 +68,6 @@ import org.apache.cayenne.modeler.event.
 import org.apache.cayenne.modeler.event.TablePopupHandler;
 import org.apache.cayenne.modeler.pref.TableColumnPreferences;
 import org.apache.cayenne.modeler.util.CayenneTable;
-import org.apache.cayenne.modeler.util.CayenneWidgetFactory;
 import org.apache.cayenne.modeler.util.CellRenderers;
 import org.apache.cayenne.modeler.util.ModelerUtil;
 import org.apache.cayenne.modeler.util.PanelFactory;
@@ -306,13 +305,13 @@ public class DbEntityRelationshipTab ext
         TableColumn col = table.getColumnModel().getColumn(
                 DbRelationshipTableModel.TARGET);
 
-        targetCombo = CayenneWidgetFactory.createComboBox();
+        targetCombo = Application.getWidgetFactory().createComboBox();
         AutoCompletion.enable(targetCombo);
 
         targetCombo.setRenderer(CellRenderers.entityListRendererWithIcons(entity
                 .getDataMap()));
         targetCombo.setModel(createComboModel(entity));
-        col.setCellEditor(CayenneWidgetFactory.createCellEditor(targetCombo));
+        col.setCellEditor(Application.getWidgetFactory().createCellEditor(targetCombo));
         table.getSelectionModel().addListSelectionListener(this);
 
         tablePreferences.bind(

Modified: cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/graph/DataDomainGraphTab.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/graph/DataDomainGraphTab.java?rev=988586&r1=988585&r2=988586&view=diff
==============================================================================
--- cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/graph/DataDomainGraphTab.java (original)
+++ cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/graph/DataDomainGraphTab.java Tue Aug 24 15:17:45 2010
@@ -43,99 +43,100 @@ import org.apache.cayenne.modeler.graph.
 import org.apache.cayenne.modeler.graph.action.SaveAsImageAction;
 import org.apache.cayenne.modeler.graph.action.ZoomInAction;
 import org.apache.cayenne.modeler.graph.action.ZoomOutAction;
-import org.apache.cayenne.modeler.util.CayenneWidgetFactory;
 import org.jgraph.JGraph;
 
 /**
  * Tab for editing graphical representation of a dataDomain
  */
-public class DataDomainGraphTab extends JPanel implements DomainDisplayListener, ItemListener {    
+public class DataDomainGraphTab extends JPanel implements DomainDisplayListener,
+        ItemListener {
+
     /**
      * mediator instance
      */
     ProjectController mediator;
-    
+
     /**
      * Diagram selection combo
      */
     JComboBox diagramCombo;
-    
+
     /**
      * Scrollpane that the graph will be added to
      */
     JScrollPane scrollPane;
-    
+
     /**
      * Current graph
      */
     JGraph graph;
-    
+
     /**
      * Current domain
      */
     DataChannelDescriptor domain;
-    
+
     /**
      * True to invoke rebuild next time component becomes visible
      */
     boolean needRebuild;
-    
+
     GraphRegistry graphRegistry;
-    
+
     public DataDomainGraphTab(ProjectController mediator) {
         this.mediator = mediator;
         initView();
     }
-    
-    
+
     private void initView() {
         graphRegistry = new GraphRegistry();
         needRebuild = true;
         mediator.addDomainDisplayListener(this);
-        
+
         setLayout(new BorderLayout());
         JToolBar toolbar = new JToolBar();
         toolbar.setLayout(new FlowLayout(FlowLayout.LEFT, 1, 1));
-        
+
         GraphType[] types = GraphType.values();
         String[] names = new String[types.length];
         for (int i = 0; i < types.length; i++) {
             names[i] = types[i].getName();
         }
-        
-        diagramCombo = CayenneWidgetFactory.createComboBox(
-                names,
-                false);
+
+        diagramCombo = Application.getWidgetFactory().createComboBox(names, false);
         diagramCombo.addItemListener(this);
-        
-        toolbar.add(new RebuildGraphAction(this, Application.getInstance()).buildButton());
+
+        toolbar
+                .add(new RebuildGraphAction(this, Application.getInstance())
+                        .buildButton());
         toolbar.add(new SaveAsImageAction(this, Application.getInstance()).buildButton());
         toolbar.addSeparator();
         toolbar.add(new ZoomInAction(this, Application.getInstance()).buildButton());
         toolbar.add(new ZoomOutAction(this, Application.getInstance()).buildButton());
-        
+
         toolbar.addSeparator();
         toolbar.add(new JLabel("Diagram: "));
         toolbar.add(diagramCombo);
         add(toolbar, BorderLayout.NORTH);
-        
+
         scrollPane = new JScrollPane();
         add(scrollPane);
     }
 
     public void currentDomainChanged(DomainDisplayEvent e) {
         if (e instanceof EntityDisplayEvent) {
-            //selecting an event
-            
-            //choose type of diagram
+            // selecting an event
+
+            // choose type of diagram
             Entity entity = ((EntityDisplayEvent) e).getEntity();
             diagramCombo.setSelectedIndex(entity instanceof ObjEntity ? 1 : 0);
             refresh();
-            
-            GraphBuilder builder = getGraphRegistry().getGraphMap(domain).get(getSelectedType());
-            
+
+            GraphBuilder builder = getGraphRegistry().getGraphMap(domain).get(
+                    getSelectedType());
+
             Object cell = builder.getEntityCell(entity.getName());
-            
+
             if (cell != null) {
                 graph.setSelectionCell(cell);
                 graph.scrollCellToVisible(cell);
@@ -144,43 +145,43 @@ public class DataDomainGraphTab extends 
         else if (domain != e.getDomain()) {
             needRebuild = true;
             domain = e.getDomain();
-            
+
             if (isVisible()) {
                 refresh();
             }
         }
     }
-    
+
     /**
-     * Rebuilds graph from a domain, if it is not yet built
-     * Otherwise, takes it from cache 
+     * Rebuilds graph from a domain, if it is not yet built Otherwise, takes it from cache
      */
     public synchronized void refresh() {
         if (needRebuild && domain != null) {
-            graph = getGraphRegistry().loadGraph(mediator, domain, 
-                    getSelectedType());
+            graph = getGraphRegistry().loadGraph(mediator, domain, getSelectedType());
             scrollPane.setViewportView(graph);
-            
+
             needRebuild = false;
         }
     }
-    
+
     private GraphType getSelectedType() {
         return GraphType.values()[diagramCombo.getSelectedIndex()];
     }
-    
+
     /**
      * Rebuilds graph, deleting existing if needed
      */
     public synchronized void rebuild() {
         if (domain != null) {
-            JOptionPane pane = new JOptionPane("Rebuilding graph from domain will cause all user" +
-            		" changes to be lost. Continue?",
-                    JOptionPane.QUESTION_MESSAGE, JOptionPane.YES_NO_OPTION);
+            JOptionPane pane = new JOptionPane(
+                    "Rebuilding graph from domain will cause all user"
+                            + " changes to be lost. Continue?",
+                    JOptionPane.QUESTION_MESSAGE,
+                    JOptionPane.YES_NO_OPTION);
 
             JDialog dialog = pane.createDialog(Application.getFrame(), "Confirm Rebuild");
             dialog.setVisible(true);
-            
+
             if (pane.getValue().equals(JOptionPane.YES_OPTION)) {
                 graphRegistry.getGraphMap(domain).remove(getSelectedType());
                 itemStateChanged(null);
@@ -192,14 +193,14 @@ public class DataDomainGraphTab extends 
         needRebuild = true;
         refresh();
     }
-    
+
     public JGraph getGraph() {
         return graph;
     }
-    
+
     GraphRegistry getGraphRegistry() {
-        
-        if(graphRegistry == null) {
+
+        if (graphRegistry == null) {
             this.graphRegistry = new GraphRegistry();
         }
         return graphRegistry;

Modified: cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/init/CayenneModelerModule.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/init/CayenneModelerModule.java?rev=988586&r1=988585&r2=988586&view=diff
==============================================================================
--- cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/init/CayenneModelerModule.java (original)
+++ cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/init/CayenneModelerModule.java Tue Aug 24 15:17:45 2010
@@ -25,6 +25,8 @@ import org.apache.cayenne.modeler.action
 import org.apache.cayenne.modeler.action.DefaultActionManager;
 import org.apache.cayenne.modeler.init.platform.GenericPlatformInitializer;
 import org.apache.cayenne.modeler.init.platform.PlatformInitializer;
+import org.apache.cayenne.modeler.util.DefaultWidgetFactory;
+import org.apache.cayenne.modeler.util.WidgetFactory;
 
 /**
  * A DI module for bootstrapping CayenneModeler services.
@@ -36,5 +38,6 @@ public class CayenneModelerModule implem
         binder.bind(ActionManager.class).to(DefaultActionManager.class);
         binder.bind(Application.class).to(Application.class);
         binder.bind(PlatformInitializer.class).to(GenericPlatformInitializer.class);
+        binder.bind(WidgetFactory.class).to(DefaultWidgetFactory.class);
     }
 }

Modified: cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/util/BrowserControl.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/util/BrowserControl.java?rev=988586&r1=988585&r2=988586&view=diff
==============================================================================
--- cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/util/BrowserControl.java (original)
+++ cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/util/BrowserControl.java Tue Aug 24 15:17:45 2010
@@ -23,20 +23,12 @@ import java.lang.reflect.Method;
 
 /**
  * Opens a URL in the system default browser.
- * 
  */
 public class BrowserControl {
 
-    // The default system browser under windows.
     private static final String WIN_PATH = "rundll32";
-    // The flag to display a url.
     private static final String WIN_FLAG = "url.dll,FileProtocolHandler";
 
-    // The default browser under unix.
-    // private static final String UNIX_PATH = "netscape";
-    // The flag to display a url.
-    // private static final String UNIX_FLAG = "-remote openURL";
-
     /**
      * Display a file in the system browser. If you want to display a file, you must
      * include the absolute path name.
@@ -63,8 +55,12 @@ public class BrowserControl {
                         "netscape"
                 };
                 for (String browser : browsers) {
-                    if (Runtime.getRuntime().exec(new String[] {"which", browser}).waitFor() == 0) {
-                        Runtime.getRuntime().exec(new String[] {browser, url});
+                    if (Runtime.getRuntime().exec(new String[] {
+                            "which", browser
+                    }).waitFor() == 0) {
+                        Runtime.getRuntime().exec(new String[] {
+                                browser, url
+                        });
                         break;
                     }
                 }

Modified: cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/util/CayenneTable.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/util/CayenneTable.java?rev=988586&r1=988585&r2=988586&view=diff
==============================================================================
--- cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/util/CayenneTable.java (original)
+++ cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/util/CayenneTable.java Tue Aug 24 15:17:45 2010
@@ -34,6 +34,7 @@ import javax.swing.table.TableColumnMode
 import javax.swing.table.TableModel;
 import javax.swing.text.JTextComponent;
 
+import org.apache.cayenne.modeler.Application;
 import org.apache.cayenne.modeler.pref.TableColumnPreferences;
 
 /**
@@ -42,16 +43,16 @@ import org.apache.cayenne.modeler.pref.T
  * 
  */
 public class CayenneTable extends JTable {
-    
+
     private SortButtonRenderer renderer = new SortButtonRenderer();
     protected TableHeaderSortingListener tableHeaderListener;
-    
+
     public CayenneTable() {
         super();
         this.setRowHeight(25);
         this.setRowMargin(3);
         JTableHeader header = getTableHeader();
-        tableHeaderListener = new TableHeaderSortingListener(header,renderer);
+        tableHeaderListener = new TableHeaderSortingListener(header, renderer);
         header.addMouseListener(tableHeaderListener);
         setSelectionModel(new CayenneListSelectionModel());
     }
@@ -75,8 +76,10 @@ public class CayenneTable extends JTable
     protected void createDefaultEditors() {
         super.createDefaultEditors();
 
-        JTextField textField = CayenneWidgetFactory.createTextField(0);
-        final DefaultCellEditor textEditor = CayenneWidgetFactory.createCellEditor(textField);
+        JTextField textField = new JTextField(20);
+        final DefaultCellEditor textEditor = Application
+                .getWidgetFactory()
+                .createCellEditor(textField);
         textEditor.setClickCountToStart(1);
 
         setDefaultEditor(Object.class, textEditor);
@@ -119,10 +122,9 @@ public class CayenneTable extends JTable
             getSelectionModel().setSelectionInterval(index, index);
         }
     }
-    
+
     /**
-     * Selects multiple rows at once. Fires not more than only one 
-     * ListSelectionEvent
+     * Selects multiple rows at once. Fires not more than only one ListSelectionEvent
      */
     public void select(int[] rows) {
         ((CayenneListSelectionModel) getSelectionModel()).setSelection(rows);
@@ -150,14 +152,15 @@ public class CayenneTable extends JTable
         cancelEditing();
         super.tableChanged(e);
     }
-    
+
     /**
-     * ListSelectionModel for Cayenne table. Has a method to set multiple
-     * rows selection at once.
+     * ListSelectionModel for Cayenne table. Has a method to set multiple rows selection
+     * at once.
      */
     class CayenneListSelectionModel extends DefaultListSelectionModel {
+
         boolean fireForbidden = false;
-        
+
         /**
          * Selects selection on multiple rows at once. Fires no more than one
          * ListSelectionEvent
@@ -173,7 +176,7 @@ public class CayenneTable extends JTable
                     break;
                 }
             }
-            
+
             if (!selectionChanged) {
                 for (int i = getMinSelectionIndex(); i < getMaxSelectionIndex(); i++) {
                     if (isSelectedIndex(i)) {
@@ -184,33 +187,33 @@ public class CayenneTable extends JTable
                                 break;
                             }
                         }
-                        
-                        if(!inNewSelection) {
+
+                        if (!inNewSelection) {
                             selectionChanged = true;
                             break;
                         }
                     }
                 }
             }
-            
+
             if (!selectionChanged) {
                 return;
             }
-            
+
             fireForbidden = true;
-            
+
             clearSelection();
             for (int row : rows) {
                 if (row >= 0 && row < getRowCount()) {
                     addRowSelectionInterval(row, row);
                 }
             }
-            
+
             fireForbidden = false;
-            
+
             fireValueChanged(getValueIsAdjusting());
         }
-        
+
         @Override
         protected void fireValueChanged(int firstIndex, int lastIndex, boolean isAdjusting) {
             if (!fireForbidden) {
@@ -220,7 +223,10 @@ public class CayenneTable extends JTable
     }
 
     public void sort(int column, boolean isAscend) {
-        tableHeaderListener.sortByDefinedColumn(convertColumnIndexToView(column), column, isAscend);
+        tableHeaderListener.sortByDefinedColumn(
+                convertColumnIndexToView(column),
+                column,
+                isAscend);
     }
 
     public void setSortPreferenceSaver(TableColumnPreferences tableColumnPreferences) {

Added: cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/util/DefaultWidgetFactory.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/util/DefaultWidgetFactory.java?rev=988586&view=auto
==============================================================================
--- cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/util/DefaultWidgetFactory.java (added)
+++ cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/util/DefaultWidgetFactory.java Tue Aug 24 15:17:45 2010
@@ -0,0 +1,113 @@
+/*****************************************************************
+ *   Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you under the Apache License, Version 2.0 (the
+ *  "License"); you may not use this file except in compliance
+ *  with the License.  You may obtain a copy of the License at
+ *
+ *    http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing,
+ *  software distributed under the License is distributed on an
+ *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ *  KIND, either express or implied.  See the License for the
+ *  specific language governing permissions and limitations
+ *  under the License.
+ ****************************************************************/
+package org.apache.cayenne.modeler.util;
+
+import java.awt.Color;
+import java.util.Arrays;
+import java.util.Collection;
+
+import javax.swing.DefaultCellEditor;
+import javax.swing.DefaultComboBoxModel;
+import javax.swing.JComboBox;
+import javax.swing.JTextField;
+import javax.swing.table.TableCellEditor;
+
+import org.apache.cayenne.modeler.ModelerPreferences;
+import org.apache.cayenne.modeler.undo.JComboBoxUndoListener;
+import org.apache.cayenne.modeler.util.combo.AutoCompletion;
+import org.apache.cayenne.modeler.util.combo.ComboBoxCellEditor;
+import org.syntax.jedit.JEditTextArea;
+
+public class DefaultWidgetFactory implements WidgetFactory {
+
+    /**
+     * Creates a new JComboBox with a collection of model objects.
+     */
+    public JComboBox createComboBox(Collection<String> model, boolean sort) {
+        return createComboBox(model.toArray(), sort);
+    }
+
+    /**
+     * Creates a new JComboBox with an array of model objects.
+     */
+    public JComboBox createComboBox(Object[] model, boolean sort) {
+        JComboBox comboBox = createComboBox();
+
+        if (sort) {
+            Arrays.sort(model);
+        }
+
+        comboBox.setModel(new DefaultComboBoxModel(model));
+        return comboBox;
+    }
+
+    /**
+     * Creates a new JComboBox.
+     */
+    public JComboBox createComboBox() {
+        JComboBox comboBox = new JComboBox();
+        comboBox.setBackground(Color.WHITE);
+        comboBox.setMaximumRowCount(ModelerPreferences.COMBOBOX_MAX_VISIBLE_SIZE);
+        return comboBox;
+    }
+
+    /**
+     * Creates undoable JComboBox.
+     * 
+     */
+    public JComboBox createUndoableComboBox() {
+        JComboBox comboBox = new JComboBox();
+        comboBox.addItemListener(new JComboBoxUndoListener());
+        comboBox.setBackground(Color.WHITE);
+        comboBox.setMaximumRowCount(ModelerPreferences.COMBOBOX_MAX_VISIBLE_SIZE);
+        return comboBox;
+    }
+
+    /**
+     * Creates cell editor for text field
+     */
+    public DefaultCellEditor createCellEditor(JTextField textField) {
+        return new CayenneCellEditor(textField);
+    }
+
+    /**
+     * Creates cell editor for a table with combo as editor component. Type of this editor
+     * depends on auto-completion behavior of JComboBox
+     * 
+     * @param combo JComboBox to be used as editor component
+     */
+    public TableCellEditor createCellEditor(JComboBox combo) {
+        if (Boolean.TRUE.equals(combo
+                .getClientProperty(AutoCompletion.AUTOCOMPLETION_PROPERTY))) {
+            return new ComboBoxCellEditor(combo);
+        }
+
+        DefaultCellEditor editor = new DefaultCellEditor(combo);
+        editor.setClickCountToStart(1);
+
+        return editor;
+    }
+
+    /**
+     * Creates and returns a JEdit text component with syntax highlighing
+     */
+    public JEditTextArea createJEditTextArea() {
+        return new JEditTextAreaUndoable();
+    }
+}

Modified: cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/util/JTextFieldUndoable.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/util/JTextFieldUndoable.java?rev=988586&r1=988585&r2=988586&view=diff
==============================================================================
--- cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/util/JTextFieldUndoable.java (original)
+++ cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/util/JTextFieldUndoable.java Tue Aug 24 15:17:45 2010
@@ -23,17 +23,17 @@ import javax.swing.event.UndoableEditLis
 
 import org.apache.cayenne.modeler.undo.JTextFieldUndoListener;
 
-class JTextFieldUndoable extends JTextField {
+public class JTextFieldUndoable extends JTextField {
     
     private UndoableEditListener undoListener;
 
-    JTextFieldUndoable() {
+    public JTextFieldUndoable() {
         super();
         this.undoListener = new JTextFieldUndoListener(this);
         this.getDocument().addUndoableEditListener(this.undoListener);
     }
     
-    JTextFieldUndoable(int size) {
+    public JTextFieldUndoable(int size) {
         super(size);
         this.undoListener = new JTextFieldUndoListener(this);
         this.getDocument().addUndoableEditListener(this.undoListener);

Copied: cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/util/JUndoableCayenneTextPane.java (from r988538, cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/util/JCayenneTextPaneUndoable.java)
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/util/JUndoableCayenneTextPane.java?p2=cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/util/JUndoableCayenneTextPane.java&p1=cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/util/JCayenneTextPaneUndoable.java&r1=988538&r2=988586&rev=988586&view=diff
==============================================================================
--- cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/util/JCayenneTextPaneUndoable.java (original)
+++ cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/util/JUndoableCayenneTextPane.java Tue Aug 24 15:17:45 2010
@@ -24,11 +24,11 @@ import org.apache.cayenne.modeler.undo.J
 import org.apache.cayenne.swing.components.textpane.JCayenneTextPane;
 import org.apache.cayenne.swing.components.textpane.syntax.SyntaxConstant;
 
-class JCayenneTextPaneUndoable extends JCayenneTextPane {
+public class JUndoableCayenneTextPane extends JCayenneTextPane {
 
     private UndoableEditListener undoListener;
 
-    JCayenneTextPaneUndoable(SyntaxConstant syntaxConstant) {
+    public JUndoableCayenneTextPane(SyntaxConstant syntaxConstant) {
         super(syntaxConstant);
 
         this.undoListener = new JTextFieldUndoListener(this.getPane());

Modified: cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/util/OperatingSystem.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/util/OperatingSystem.java?rev=988586&r1=988585&r2=988586&view=diff
==============================================================================
--- cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/util/OperatingSystem.java (original)
+++ cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/util/OperatingSystem.java Tue Aug 24 15:17:45 2010
@@ -20,8 +20,6 @@ package org.apache.cayenne.modeler.util;
 
 /**
  * An enum that provides high-level information about the host OS.
- * 
- * @since 3.0
  */
 public enum OperatingSystem {
 

Added: cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/util/WidgetFactory.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/util/WidgetFactory.java?rev=988586&view=auto
==============================================================================
--- cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/util/WidgetFactory.java (added)
+++ cayenne/main/trunk/framework/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/util/WidgetFactory.java Tue Aug 24 15:17:45 2010
@@ -0,0 +1,75 @@
+/*****************************************************************
+ *   Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you under the Apache License, Version 2.0 (the
+ *  "License"); you may not use this file except in compliance
+ *  with the License.  You may obtain a copy of the License at
+ *
+ *    http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing,
+ *  software distributed under the License is distributed on an
+ *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ *  KIND, either express or implied.  See the License for the
+ *  specific language governing permissions and limitations
+ *  under the License.
+ ****************************************************************/
+
+package org.apache.cayenne.modeler.util;
+
+import java.util.Collection;
+
+import javax.swing.DefaultCellEditor;
+import javax.swing.JComboBox;
+import javax.swing.JTextField;
+import javax.swing.table.TableCellEditor;
+
+import org.syntax.jedit.JEditTextArea;
+
+/**
+ * Utility class to create standard Swing widgets following default look-and-feel of
+ * CayenneModeler.
+ */
+public interface WidgetFactory {
+
+    /**
+     * Creates a new JComboBox with a collection of model objects.
+     */
+    JComboBox createComboBox(Collection<String> model, boolean sort);
+
+    /**
+     * Creates a new JComboBox with an array of model objects.
+     */
+    JComboBox createComboBox(Object[] model, boolean sort);
+
+    /**
+     * Creates a new JComboBox.
+     */
+    JComboBox createComboBox();
+
+    /**
+     * Creates undoable JComboBox.
+     */
+    JComboBox createUndoableComboBox();
+
+    /**
+     * Creates cell editor for text field
+     */
+    DefaultCellEditor createCellEditor(JTextField textField);
+
+    /**
+     * Creates cell editor for a table with combo as editor component. Type of this editor
+     * depends on auto-completion behavior of JComboBox
+     * 
+     * @param combo JComboBox to be used as editor component
+     */
+    TableCellEditor createCellEditor(JComboBox combo);
+
+    /**
+     * Creates and returns a JEdit text component with syntax highlighing
+     */
+    JEditTextArea createJEditTextArea();
+
+}

Modified: cayenne/main/trunk/framework/cayenne-project-unpublished/src/main/java/org/apache/cayenne/project/validation/EmbeddableValidator.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-project-unpublished/src/main/java/org/apache/cayenne/project/validation/EmbeddableValidator.java?rev=988586&r1=988585&r2=988586&view=diff
==============================================================================
--- cayenne/main/trunk/framework/cayenne-project-unpublished/src/main/java/org/apache/cayenne/project/validation/EmbeddableValidator.java (original)
+++ cayenne/main/trunk/framework/cayenne-project-unpublished/src/main/java/org/apache/cayenne/project/validation/EmbeddableValidator.java Tue Aug 24 15:17:45 2010
@@ -66,8 +66,10 @@ class EmbeddableValidator extends Config
                     continue;
                 }
 
+                // note that lookuo below will return the same embeddable due to the
+                // shared namespace if not conflicts exist
                 Embeddable conflictingEmbeddable = nextMap.getEmbeddable(name);
-                if (conflictingEmbeddable != null) {
+                if (conflictingEmbeddable != null && conflictingEmbeddable != embeddable) {
                     addFailure(
                             validationResult,
                             embeddable,

Added: cayenne/main/trunk/modeler/cayenne-modeler-generic-ext/.classpath
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/modeler/cayenne-modeler-generic-ext/.classpath?rev=988586&view=auto
==============================================================================
--- cayenne/main/trunk/modeler/cayenne-modeler-generic-ext/.classpath (added)
+++ cayenne/main/trunk/modeler/cayenne-modeler-generic-ext/.classpath Tue Aug 24 15:17:45 2010
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+	<classpathentry kind="src" output="target/classes" path="src/main/java"/>
+	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.5"/>
+	<classpathentry kind="con" path="org.maven.ide.eclipse.MAVEN2_CLASSPATH_CONTAINER"/>
+	<classpathentry kind="output" path="target/classes"/>
+</classpath>

Added: cayenne/main/trunk/modeler/cayenne-modeler-generic-ext/.project
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/modeler/cayenne-modeler-generic-ext/.project?rev=988586&view=auto
==============================================================================
--- cayenne/main/trunk/modeler/cayenne-modeler-generic-ext/.project (added)
+++ cayenne/main/trunk/modeler/cayenne-modeler-generic-ext/.project Tue Aug 24 15:17:45 2010
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+	<name>cayenne-modeler-generic-ext</name>
+	<comment></comment>
+	<projects>
+	</projects>
+	<buildSpec>
+		<buildCommand>
+			<name>org.eclipse.jdt.core.javabuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.maven.ide.eclipse.maven2Builder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+	</buildSpec>
+	<natures>
+		<nature>org.eclipse.jdt.core.javanature</nature>
+		<nature>org.maven.ide.eclipse.maven2Nature</nature>
+	</natures>
+</projectDescription>

Added: cayenne/main/trunk/modeler/cayenne-modeler-generic-ext/.settings/org.eclipse.jdt.core.prefs
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/modeler/cayenne-modeler-generic-ext/.settings/org.eclipse.jdt.core.prefs?rev=988586&view=auto
==============================================================================
--- cayenne/main/trunk/modeler/cayenne-modeler-generic-ext/.settings/org.eclipse.jdt.core.prefs (added)
+++ cayenne/main/trunk/modeler/cayenne-modeler-generic-ext/.settings/org.eclipse.jdt.core.prefs Tue Aug 24 15:17:45 2010
@@ -0,0 +1,253 @@
+#Fri Nov 16 16:54:33 EST 2007
+eclipse.preferences.version=1
+org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5
+org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
+org.eclipse.jdt.core.compiler.compliance=1.5
+org.eclipse.jdt.core.compiler.debug.lineNumber=generate
+org.eclipse.jdt.core.compiler.debug.localVariable=generate
+org.eclipse.jdt.core.compiler.debug.sourceFile=generate
+org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
+org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
+org.eclipse.jdt.core.compiler.source=1.5
+org.eclipse.jdt.core.formatter.align_type_members_on_columns=false
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_allocation_expression=48
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_enum_constant=16
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_explicit_constructor_call=48
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_method_invocation=48
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_qualified_allocation_expression=48
+org.eclipse.jdt.core.formatter.alignment_for_binary_expression=48
+org.eclipse.jdt.core.formatter.alignment_for_compact_if=16
+org.eclipse.jdt.core.formatter.alignment_for_conditional_expression=48
+org.eclipse.jdt.core.formatter.alignment_for_enum_constants=0
+org.eclipse.jdt.core.formatter.alignment_for_expressions_in_array_initializer=16
+org.eclipse.jdt.core.formatter.alignment_for_multiple_fields=16
+org.eclipse.jdt.core.formatter.alignment_for_parameters_in_constructor_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_parameters_in_method_declaration=48
+org.eclipse.jdt.core.formatter.alignment_for_selector_in_method_invocation=48
+org.eclipse.jdt.core.formatter.alignment_for_superclass_in_type_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_enum_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_type_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_constructor_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_method_declaration=16
+org.eclipse.jdt.core.formatter.blank_lines_after_imports=1
+org.eclipse.jdt.core.formatter.blank_lines_after_package=1
+org.eclipse.jdt.core.formatter.blank_lines_before_field=0
+org.eclipse.jdt.core.formatter.blank_lines_before_first_class_body_declaration=1
+org.eclipse.jdt.core.formatter.blank_lines_before_imports=1
+org.eclipse.jdt.core.formatter.blank_lines_before_member_type=1
+org.eclipse.jdt.core.formatter.blank_lines_before_method=1
+org.eclipse.jdt.core.formatter.blank_lines_before_new_chunk=1
+org.eclipse.jdt.core.formatter.blank_lines_before_package=0
+org.eclipse.jdt.core.formatter.blank_lines_between_type_declarations=1
+org.eclipse.jdt.core.formatter.brace_position_for_annotation_type_declaration=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_anonymous_type_declaration=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_array_initializer=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_block=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_block_in_case=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_constructor_declaration=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_enum_constant=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_enum_declaration=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_method_declaration=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_switch=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_type_declaration=end_of_line
+org.eclipse.jdt.core.formatter.comment.clear_blank_lines=true
+org.eclipse.jdt.core.formatter.comment.format_comments=true
+org.eclipse.jdt.core.formatter.comment.format_header=false
+org.eclipse.jdt.core.formatter.comment.format_html=true
+org.eclipse.jdt.core.formatter.comment.format_source_code=true
+org.eclipse.jdt.core.formatter.comment.indent_parameter_description=true
+org.eclipse.jdt.core.formatter.comment.indent_root_tags=true
+org.eclipse.jdt.core.formatter.comment.insert_new_line_before_root_tags=insert
+org.eclipse.jdt.core.formatter.comment.insert_new_line_for_parameter=do not insert
+org.eclipse.jdt.core.formatter.comment.line_length=90
+org.eclipse.jdt.core.formatter.compact_else_if=true
+org.eclipse.jdt.core.formatter.continuation_indentation=2
+org.eclipse.jdt.core.formatter.continuation_indentation_for_array_initializer=2
+org.eclipse.jdt.core.formatter.format_guardian_clause_on_one_line=false
+org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_constant_header=true
+org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_declaration_header=true
+org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_type_header=true
+org.eclipse.jdt.core.formatter.indent_breaks_compare_to_cases=true
+org.eclipse.jdt.core.formatter.indent_statements_compare_to_block=true
+org.eclipse.jdt.core.formatter.indent_statements_compare_to_body=true
+org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_cases=true
+org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_switch=true
+org.eclipse.jdt.core.formatter.indentation.size=4
+org.eclipse.jdt.core.formatter.insert_new_line_after_annotation=insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_opening_brace_in_array_initializer=insert
+org.eclipse.jdt.core.formatter.insert_new_line_at_end_of_file_if_missing=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_before_catch_in_try_statement=insert
+org.eclipse.jdt.core.formatter.insert_new_line_before_closing_brace_in_array_initializer=insert
+org.eclipse.jdt.core.formatter.insert_new_line_before_else_in_if_statement=insert
+org.eclipse.jdt.core.formatter.insert_new_line_before_finally_in_try_statement=insert
+org.eclipse.jdt.core.formatter.insert_new_line_before_while_in_do_statement=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_anonymous_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_block=insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_constant=insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_declaration=insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_method_body=insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_after_and_in_type_parameter=insert
+org.eclipse.jdt.core.formatter.insert_space_after_assignment_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation_type_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_binary_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_arguments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_parameters=insert
+org.eclipse.jdt.core.formatter.insert_space_after_closing_brace_in_block=insert
+org.eclipse.jdt.core.formatter.insert_space_after_closing_paren_in_cast=insert
+org.eclipse.jdt.core.formatter.insert_space_after_colon_in_assert=insert
+org.eclipse.jdt.core.formatter.insert_space_after_colon_in_case=insert
+org.eclipse.jdt.core.formatter.insert_space_after_colon_in_conditional=insert
+org.eclipse.jdt.core.formatter.insert_space_after_colon_in_for=insert
+org.eclipse.jdt.core.formatter.insert_space_after_colon_in_labeled_statement=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_allocation_expression=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_annotation=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_array_initializer=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_parameters=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_throws=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_constant_arguments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_declarations=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_explicitconstructorcall_arguments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_increments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_inits=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_parameters=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_throws=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_invocation_arguments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_field_declarations=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_local_declarations=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_parameterized_type_reference=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_superinterfaces=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_arguments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_parameters=insert
+org.eclipse.jdt.core.formatter.insert_space_after_ellipsis=insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_parameterized_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_brace_in_array_initializer=insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_allocation_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_annotation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_cast=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_catch=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_constructor_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_enum_constant=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_for=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_if=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_invocation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_parenthesized_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_switch=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_synchronized=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_while=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_postfix_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_prefix_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_question_in_conditional=insert
+org.eclipse.jdt.core.formatter.insert_space_after_question_in_wildcard=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_for=insert
+org.eclipse.jdt.core.formatter.insert_space_after_unary_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_and_in_type_parameter=insert
+org.eclipse.jdt.core.formatter.insert_space_before_assignment_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_before_at_in_annotation_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_binary_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_parameterized_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_brace_in_array_initializer=insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_allocation_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_annotation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_cast=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_catch=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_constructor_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_enum_constant=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_for=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_if=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_invocation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_parenthesized_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_switch=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_synchronized=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_while=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_assert=insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_case=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_conditional=insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_default=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_for=insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_labeled_statement=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_allocation_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_annotation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_array_initializer=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_throws=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_constant_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_declarations=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_explicitconstructorcall_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_increments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_inits=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_throws=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_invocation_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_field_declarations=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_local_declarations=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_parameterized_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_superinterfaces=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_ellipsis=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_parameterized_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_annotation_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_anonymous_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_array_initializer=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_block=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_constructor_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_constant=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_method_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_switch=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_allocation_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation_type_member_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_catch=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_constructor_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_enum_constant=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_for=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_if=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_invocation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_parenthesized_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_switch=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_synchronized=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_while=insert
+org.eclipse.jdt.core.formatter.insert_space_before_postfix_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_prefix_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_question_in_conditional=insert
+org.eclipse.jdt.core.formatter.insert_space_before_question_in_wildcard=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_semicolon=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_for=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_unary_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_brackets_in_array_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_braces_in_array_initializer=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_brackets_in_array_allocation_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_annotation_type_member_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_constructor_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_enum_constant=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_invocation=do not insert
+org.eclipse.jdt.core.formatter.keep_else_statement_on_same_line=false
+org.eclipse.jdt.core.formatter.keep_empty_array_initializer_on_one_line=false
+org.eclipse.jdt.core.formatter.keep_imple_if_on_one_line=false
+org.eclipse.jdt.core.formatter.keep_then_statement_on_same_line=false
+org.eclipse.jdt.core.formatter.lineSplit=90
+org.eclipse.jdt.core.formatter.number_of_blank_lines_at_beginning_of_method_body=0
+org.eclipse.jdt.core.formatter.number_of_empty_lines_to_preserve=1
+org.eclipse.jdt.core.formatter.put_empty_statement_on_new_line=true
+org.eclipse.jdt.core.formatter.tabulation.char=space
+org.eclipse.jdt.core.formatter.tabulation.size=4
+org.eclipse.jdt.core.formatter.use_tabs_only_for_leading_indentations=false