Author: rombert
Date: Fri May 23 20:07:14 2014
New Revision: 1597167

URL: http://svn.apache.org/r1597167
Log:
SLING-3604 - Usability improvements in the Sling bundle module wizard

Use a combo instead of a list for the archetypes.

Modified:
    
sling/trunk/tooling/ide/eclipse-m2e-ui/src/org/apache/sling/ide/eclipse/ui/wizards/np/ChooseArchetypeWizardPage.java

Modified: 
sling/trunk/tooling/ide/eclipse-m2e-ui/src/org/apache/sling/ide/eclipse/ui/wizards/np/ChooseArchetypeWizardPage.java
URL: 
http://svn.apache.org/viewvc/sling/trunk/tooling/ide/eclipse-m2e-ui/src/org/apache/sling/ide/eclipse/ui/wizards/np/ChooseArchetypeWizardPage.java?rev=1597167&r1=1597166&r2=1597167&view=diff
==============================================================================
--- 
sling/trunk/tooling/ide/eclipse-m2e-ui/src/org/apache/sling/ide/eclipse/ui/wizards/np/ChooseArchetypeWizardPage.java
 (original)
+++ 
sling/trunk/tooling/ide/eclipse-m2e-ui/src/org/apache/sling/ide/eclipse/ui/wizards/np/ChooseArchetypeWizardPage.java
 Fri May 23 20:07:14 2014
@@ -51,7 +51,6 @@ import org.eclipse.swt.widgets.Composite
 import org.eclipse.swt.widgets.DirectoryDialog;
 import org.eclipse.swt.widgets.Display;
 import org.eclipse.swt.widgets.Label;
-import org.eclipse.swt.widgets.List;
 import org.eclipse.m2e.core.internal.index.IndexListener;
 import org.eclipse.m2e.core.repository.IRepository;
 
@@ -59,7 +58,7 @@ import org.eclipse.m2e.core.repository.I
 public class ChooseArchetypeWizardPage extends WizardPage implements 
IndexListener {
        
        private static final String LOADING_PLEASE_WAIT = "loading, please 
wait...";
-       private List knownArchetypesList;
+    private Combo knownArchetypes;
        private Map<String, Archetype> archetypesMap = new HashMap<String, 
Archetype>();
        private Button useDefaultWorkspaceLocationButton;
        private Label locationLabel;
@@ -82,7 +81,7 @@ public class ChooseArchetypeWizardPage e
                GridLayout layout = new GridLayout();
                container.setLayout(layout);
                layout.numColumns = 3;
-               layout.verticalSpacing = 9;
+        layout.verticalSpacing = 9;
 
            useDefaultWorkspaceLocationButton = new Button(container, 
SWT.CHECK);
            GridData useDefaultWorkspaceLocationButtonData = new 
GridData(SWT.LEFT, SWT.CENTER, false, false, 3, 1);
@@ -144,16 +143,16 @@ public class ChooseArchetypeWizardPage e
                Label label = new Label(container, SWT.NULL);
                label.setText("&Archetype:");
 
-               knownArchetypesList = new List(container, SWT.BORDER);
-               GridData gd = new GridData(GridData.FILL_HORIZONTAL);
-               knownArchetypesList.setLayoutData(gd);
-               knownArchetypesList.addSelectionListener(new SelectionAdapter() 
{
+        knownArchetypes = new Combo(container, SWT.DROP_DOWN | SWT.READ_ONLY);
+        GridData gd = new GridData(GridData.FILL_HORIZONTAL);
+        knownArchetypes.setLayoutData(gd);
+               knownArchetypes.addSelectionListener(new SelectionAdapter() {
                        @Override
                        public void widgetSelected(SelectionEvent e) {
                                dialogChanged();
                        }
                });
-               knownArchetypesList.addMouseListener(new MouseAdapter() {
+               knownArchetypes.addMouseListener(new MouseAdapter() {
                        @Override
                        public void mouseDoubleClick(MouseEvent e) {
                                getContainer().showPage(getNextPage());
@@ -175,13 +174,15 @@ public class ChooseArchetypeWizardPage e
     }
 
        public Archetype getSelectedArchetype() {
-               String[] sel = knownArchetypesList.getSelection();
-               if (sel==null || sel.length!=1) {
-                       return null;
-               }
-               String s = sel[0];
-               Archetype a = archetypesMap.get(s);
-               return a;
+
+        int idx = knownArchetypes.getSelectionIndex();
+        if (idx == -1) {
+            return null;
+        }
+
+        String archetype = knownArchetypes.getItem(idx);
+
+        return archetypesMap.get(archetype);
        }
        
     /*
@@ -192,7 +193,7 @@ public class ChooseArchetypeWizardPage e
     @Override
     public void setVisible(boolean visible) {
         super.setVisible(visible);
-        if (visible && knownArchetypesList.getItemCount() == 0) {
+        if (visible && knownArchetypes.getItemCount() == 0) {
             // initialize as late as possible to take advantage of the error 
reporting
             // and progress from the parent wizard
             initialize();
@@ -200,7 +201,7 @@ public class ChooseArchetypeWizardPage e
     }
 
        private void initialize() {
-               knownArchetypesList.add(LOADING_PLEASE_WAIT);
+               knownArchetypes.add(LOADING_PLEASE_WAIT);
                try {
             getContainer().run(true, false, new IRunnableWithProgress() {
                                        
@@ -242,11 +243,11 @@ public class ChooseArchetypeWizardPage e
                                Display.getDefault().asyncExec(new Runnable() {
                                    public void run() {
                                        Set<String> keys = 
archetypesMap.keySet();
-                                       knownArchetypesList.removeAll();
+                                       knownArchetypes.removeAll();
                             for (String aKey : keys) {
-                                knownArchetypesList.add(aKey);
+                                knownArchetypes.add(aKey);
                             }
-                                       knownArchetypesList.pack();
+                                       knownArchetypes.pack();
                                    }
                                  });
                                monitor.done();
@@ -265,13 +266,13 @@ public class ChooseArchetypeWizardPage e
        }
 
        private void dialogChanged() {
-               if (knownArchetypesList.getItemCount()==1 &&
-                               
knownArchetypesList.getItem(0).equals(LOADING_PLEASE_WAIT)) {
+               if (knownArchetypes.getItemCount()==1 &&
+                               
knownArchetypes.getItem(0).equals(LOADING_PLEASE_WAIT)) {
                        setErrorMessage(null);
                        setPageComplete(false);
                        return;
                }
-               if (knownArchetypesList.getSelectionCount()!=1) {
+        if (knownArchetypes.getSelectionIndex() == -1) {
                        updateStatus("archetype must be selected");
                        return;
                }
@@ -309,7 +310,7 @@ public class ChooseArchetypeWizardPage e
             @Override
             public void run() {
                 if (isCurrentPage()) {
-                    knownArchetypesList.removeAll();
+                    knownArchetypes.removeAll();
                     initialize();
                 }
             }


Reply via email to