You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sling.apache.org by ro...@apache.org on 2014/05/23 22:07:14 UTC

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

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();
                 }
             }