Author: jjohnstn
Date: 2010-10-06 18:57:39 -0400 (Wed, 06 Oct 2010)
New Revision: 25539
Added:
trunk/deltacloud/plugins/org.jboss.tools.deltacloud.ui/src/org/jboss/tools/internal/deltacloud/ui/wizards/ImageFilter.java
trunk/deltacloud/plugins/org.jboss.tools.deltacloud.ui/src/org/jboss/tools/internal/deltacloud/ui/wizards/ImageFilterPage.java
Modified:
trunk/deltacloud/plugins/org.jboss.tools.deltacloud.ui/ChangeLog
trunk/deltacloud/plugins/org.jboss.tools.deltacloud.ui/src/org/jboss/tools/deltacloud/ui/views/CVImagesCategoryElement.java
trunk/deltacloud/plugins/org.jboss.tools.deltacloud.ui/src/org/jboss/tools/deltacloud/ui/views/CVMessages.properties
trunk/deltacloud/plugins/org.jboss.tools.deltacloud.ui/src/org/jboss/tools/deltacloud/ui/views/DeltaCloudView.java
trunk/deltacloud/plugins/org.jboss.tools.deltacloud.ui/src/org/jboss/tools/deltacloud/ui/views/ImageView.java
trunk/deltacloud/plugins/org.jboss.tools.deltacloud.ui/src/org/jboss/tools/deltacloud/ui/views/ImageViewLabelAndContentProvider.java
trunk/deltacloud/plugins/org.jboss.tools.deltacloud.ui/src/org/jboss/tools/internal/deltacloud/ui/wizards/WizardMessages.properties
Log:
2010-10-06 Jeff Johnston <jjohnstn(a)redhat.com>
* src/org/jboss/tools/internal/deltacloud/ui/wizards/ImageFilter.java: New file.
* src/org/jboss/tools/internal/deltacloud/ui/wizards/ImageFilterPage.java: New file.
* src/org/jboss/tools/deltacloud/ui/views/CVImagesCategoryElement.java (listChanged):
Apply filtering.
(getChildren): Ditto.
(filter): New method.
* src/org/jboss/tools/deltacloud/ui/views/CVMessages.properties:
* src/org/jboss/tools/deltacloud/ui/views/DeltaCloudView.java (handleSelection):
Disable set of global actions when nothing is selected.
(makeActions): Create image filtering action.
(fillLocalPullDown): Add image filtering action.
(fillContextMenu): Ditto.
* src/org/jboss/tools/deltacloud/ui/views/ImageView.java (makeActions): Create image
filtering action.
(fillLocalPullDown): Add image filtering action.
(createPartControl): Add a filtered label that pops up when the list is filtered.
* src/org/jboss/tools/deltacloud/ui/views/ImageViewLabelAndContentProvider.java
(inputChanged):
Apply filtering.
(filter): New method.
* src/org/jboss/tools/internal/deltacloud/ui/wizards/WizardMessages.properties: Add new
messages.
Modified: trunk/deltacloud/plugins/org.jboss.tools.deltacloud.ui/ChangeLog
===================================================================
--- trunk/deltacloud/plugins/org.jboss.tools.deltacloud.ui/ChangeLog 2010-10-06 21:16:10
UTC (rev 25538)
+++ trunk/deltacloud/plugins/org.jboss.tools.deltacloud.ui/ChangeLog 2010-10-06 22:57:39
UTC (rev 25539)
@@ -1,3 +1,26 @@
+2010-10-06 Jeff Johnston <jjohnstn(a)redhat.com>
+
+ * src/org/jboss/tools/internal/deltacloud/ui/wizards/ImageFilter.java: New file.
+ * src/org/jboss/tools/internal/deltacloud/ui/wizards/ImageFilterPage.java: New file.
+ * src/org/jboss/tools/deltacloud/ui/views/CVImagesCategoryElement.java (listChanged):
+ Apply filtering.
+ (getChildren): Ditto.
+ (filter): New method.
+ * src/org/jboss/tools/deltacloud/ui/views/CVMessages.properties:
+ * src/org/jboss/tools/deltacloud/ui/views/DeltaCloudView.java (handleSelection):
+ Disable set of global actions when nothing is selected.
+ (makeActions): Create image filtering action.
+ (fillLocalPullDown): Add image filtering action.
+ (fillContextMenu): Ditto.
+ * src/org/jboss/tools/deltacloud/ui/views/ImageView.java (makeActions): Create image
+ filtering action.
+ (fillLocalPullDown): Add image filtering action.
+ (createPartControl): Add a filtered label that pops up when the list is filtered.
+ * src/org/jboss/tools/deltacloud/ui/views/ImageViewLabelAndContentProvider.java
(inputChanged):
+ Apply filtering.
+ (filter): New method.
+ * src/org/jboss/tools/internal/deltacloud/ui/wizards/WizardMessages.properties: Add new
messages.
+
2010-10-06 André Dietisheim <adietish(a)redhat.com>
* src/org/jboss/tools/internal/deltacloud/ui/wizards/CloudConnectionPage.java
(checkURL): changed url and added accept headers
Modified:
trunk/deltacloud/plugins/org.jboss.tools.deltacloud.ui/src/org/jboss/tools/deltacloud/ui/views/CVImagesCategoryElement.java
===================================================================
---
trunk/deltacloud/plugins/org.jboss.tools.deltacloud.ui/src/org/jboss/tools/deltacloud/ui/views/CVImagesCategoryElement.java 2010-10-06
21:16:10 UTC (rev 25538)
+++
trunk/deltacloud/plugins/org.jboss.tools.deltacloud.ui/src/org/jboss/tools/deltacloud/ui/views/CVImagesCategoryElement.java 2010-10-06
22:57:39 UTC (rev 25539)
@@ -10,11 +10,14 @@
*******************************************************************************/
package org.jboss.tools.deltacloud.ui.views;
+import java.util.ArrayList;
+
import org.eclipse.jface.viewers.TreeViewer;
import org.eclipse.jface.viewers.Viewer;
import org.eclipse.swt.widgets.Display;
import org.jboss.tools.deltacloud.core.DeltaCloud;
import org.jboss.tools.deltacloud.core.DeltaCloudImage;
+import org.jboss.tools.deltacloud.core.IImageFilter;
import org.jboss.tools.deltacloud.core.IImageListListener;
public class CVImagesCategoryElement extends CVCategoryElement implements
IImageListListener {
@@ -41,7 +44,7 @@
if (!initialized) {
DeltaCloud cloud = (DeltaCloud)getElement();
cloud.removeImageListListener(this);
- DeltaCloudImage[] images = cloud.getCurrImages();
+ DeltaCloudImage[] images = filter(cloud.getCurrImages());
for (int i = 0; i < images.length; ++i) {
DeltaCloudImage d = images[i];
CVImageElement element = new CVImageElement(d, d.getName());
@@ -54,8 +57,9 @@
}
@Override
- public void listChanged(DeltaCloud cloud, DeltaCloudImage[] images) {
+ public void listChanged(DeltaCloud cloud, DeltaCloudImage[] newImages) {
clearChildren();
+ DeltaCloudImage[] images = filter(newImages);
for (int i = 0; i < images.length; ++i) {
DeltaCloudImage d = images[i];
CVImageElement element = new CVImageElement(d, d.getName());
@@ -69,5 +73,18 @@
}
});
}
+
+ public DeltaCloudImage[] filter(DeltaCloudImage[] input) {
+ ArrayList<DeltaCloudImage> array = new ArrayList<DeltaCloudImage>();
+ DeltaCloud cloud = (DeltaCloud)getElement();
+ IImageFilter f = cloud.getImageFilter();
+ for (int i = 0; i < input.length; ++i) {
+ DeltaCloudImage image = input[i];
+ if (f.isVisible(image))
+ array.add(image);
+ }
+ return array.toArray(new DeltaCloudImage[array.size()]);
+ }
+
}
Modified:
trunk/deltacloud/plugins/org.jboss.tools.deltacloud.ui/src/org/jboss/tools/deltacloud/ui/views/CVMessages.properties
===================================================================
---
trunk/deltacloud/plugins/org.jboss.tools.deltacloud.ui/src/org/jboss/tools/deltacloud/ui/views/CVMessages.properties 2010-10-06
21:16:10 UTC (rev 25538)
+++
trunk/deltacloud/plugins/org.jboss.tools.deltacloud.ui/src/org/jboss/tools/deltacloud/ui/views/CVMessages.properties 2010-10-06
22:57:39 UTC (rev 25539)
@@ -33,6 +33,10 @@
RemoveCloud.label=Disconnect Cloud
EditCloud.label=Edit Connection
Refresh.label=Refresh Cloud
+Filter.label=Filter...
+Filtered.label=filtered
+FilteredImages.tooltip=Images shown have been filtered
+ImageFilter.label=Filter Images...
CreateInstance.label=Launch Instance
DeleteInstance.label=Delete Instance
ShowInRSE.label=Show in Remote System Explorer
Modified:
trunk/deltacloud/plugins/org.jboss.tools.deltacloud.ui/src/org/jboss/tools/deltacloud/ui/views/DeltaCloudView.java
===================================================================
---
trunk/deltacloud/plugins/org.jboss.tools.deltacloud.ui/src/org/jboss/tools/deltacloud/ui/views/DeltaCloudView.java 2010-10-06
21:16:10 UTC (rev 25538)
+++
trunk/deltacloud/plugins/org.jboss.tools.deltacloud.ui/src/org/jboss/tools/deltacloud/ui/views/DeltaCloudView.java 2010-10-06
22:57:39 UTC (rev 25539)
@@ -34,6 +34,7 @@
import org.eclipse.swt.SWT;
import org.eclipse.swt.layout.GridData;
import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Menu;
import org.eclipse.swt.widgets.Shell;
import org.eclipse.ui.IActionBars;
@@ -50,6 +51,7 @@
import org.jboss.tools.deltacloud.core.ICloudManagerListener;
import org.jboss.tools.deltacloud.ui.SWTImagesFactory;
import org.jboss.tools.internal.deltacloud.ui.wizards.EditCloudConnection;
+import org.jboss.tools.internal.deltacloud.ui.wizards.ImageFilter;
import org.jboss.tools.internal.deltacloud.ui.wizards.NewInstance;
@@ -79,6 +81,7 @@
private final static String REBOOTING_INSTANCE_MSG = "RebootingInstance.msg";
//$NON-NLS-1$
private final static String DESTROYING_INSTANCE_TITLE =
"DestroyingInstance.title"; //$NON-NLS-1$
private final static String DESTROYING_INSTANCE_MSG =
"DestroyingInstance.msg"; //$NON-NLS-1$
+ private final static String IMAGE_FILTER = "ImageFilter.label"; //$NON-NLS-1$
public static final String COLLAPSE_ALL = "CollapseAll.label"; //$NON-NLS-1$
@@ -93,6 +96,7 @@
private Action doubleClickAction;
private Action createInstance;
private Action editCloud;
+ private Action imageFilterAction;
private Map<String, Action> instanceActions;
@@ -169,6 +173,10 @@
private void handleSelection() {
IStructuredSelection selection = (IStructuredSelection) viewer.getSelection();
selectedElement = (CloudViewElement)selection.getFirstElement();
+ editCloud.setEnabled(selectedElement != null);
+ removeCloud.setEnabled(selectedElement != null);
+ refreshAction.setEnabled(selectedElement != null);
+ imageFilterAction.setEnabled(selectedElement != null);
}
private void fillLocalPullDown(IMenuManager manager) {
@@ -176,6 +184,7 @@
manager.add(editCloud);
manager.add(removeCloud);
manager.add(refreshAction);
+ manager.add(imageFilterAction);
}
private void fillContextMenu(IMenuManager manager) {
@@ -192,6 +201,7 @@
}
manager.add(editCloud);
manager.add(removeCloud);
+ manager.add(imageFilterAction);
// Other plug-ins can contribute there actions here
manager.add(new Separator(IWorkbenchActionConstants.MB_ADDITIONS));
}
@@ -407,6 +417,35 @@
instanceActions.put(DeltaCloudInstance.REBOOT, rebootAction);
instanceActions.put(DeltaCloudInstance.DESTROY, destroyAction);
+ imageFilterAction = new Action() {
+ public void run() {
+ IStructuredSelection selection = (IStructuredSelection) viewer.getSelection();
+ CloudViewElement element = (CloudViewElement)selection.getFirstElement();
+ while (element != null && !(element instanceof CVCloudElement)) {
+ element = (CloudViewElement)element.getParent();
+ }
+ if (element != null) {
+ CVCloudElement cve = (CVCloudElement)element;
+ final DeltaCloud cloud = (DeltaCloud)cve.getElement();
+ Display.getDefault().asyncExec(new Runnable() {
+
+ @Override
+ public void run() {
+ // TODO Auto-generated method stub
+ Shell shell = viewer.getControl().getShell();
+ IWizard wizard = new ImageFilter(cloud);
+ WizardDialog dialog = new WizardDialog(shell, wizard);
+ dialog.create();
+ dialog.open();
+ }
+
+ });
+ }
+ }
+ };
+ imageFilterAction.setText(CVMessages.getString(IMAGE_FILTER));
+ imageFilterAction.setToolTipText(CVMessages.getString(IMAGE_FILTER));
+
doubleClickAction = new Action() {
public void run() {
ISelection selection = viewer.getSelection();
Modified:
trunk/deltacloud/plugins/org.jboss.tools.deltacloud.ui/src/org/jboss/tools/deltacloud/ui/views/ImageView.java
===================================================================
---
trunk/deltacloud/plugins/org.jboss.tools.deltacloud.ui/src/org/jboss/tools/deltacloud/ui/views/ImageView.java 2010-10-06
21:16:10 UTC (rev 25538)
+++
trunk/deltacloud/plugins/org.jboss.tools.deltacloud.ui/src/org/jboss/tools/deltacloud/ui/views/ImageView.java 2010-10-06
22:57:39 UTC (rev 25539)
@@ -54,9 +54,11 @@
import org.jboss.tools.deltacloud.core.DeltaCloudImage;
import org.jboss.tools.deltacloud.core.DeltaCloudManager;
import org.jboss.tools.deltacloud.core.ICloudManagerListener;
+import org.jboss.tools.deltacloud.core.IImageFilter;
import org.jboss.tools.deltacloud.core.IImageListListener;
import org.jboss.tools.deltacloud.ui.Activator;
import org.jboss.tools.deltacloud.ui.IDeltaCloudPreferenceConstants;
+import org.jboss.tools.internal.deltacloud.ui.wizards.ImageFilter;
import org.jboss.tools.internal.deltacloud.ui.wizards.NewInstance;
import org.osgi.service.prefs.Preferences;
@@ -65,10 +67,13 @@
private final static String CLOUD_SELECTOR_LABEL = "CloudSelector.label";
//$NON-NLS-1$
private final static String LAUNCH_INSTANCE = "CreateInstance.label";
//$NON-NLS-1$
private static final String REFRESH = "Refresh.label"; //$NON-NLS-1$
-
+ private static final String FILTER = "Filter.label"; //$NON-NLS-1$
+ private static final String FILTERED_LABEL = "Filtered.label"; //$NON-NLS-1$
+ private static final String FILTERED_TOOLTIP = "FilteredImages.tooltip";
//$NON-NLS-1$
private TableViewer viewer;
private Composite container;
private Combo cloudSelector;
+ private Label filterLabel;
@SuppressWarnings("unused")
private DeltaCloudImage selectedElement;
@@ -78,6 +83,7 @@
private ImageViewLabelAndContentProvider contentProvider;
private Action refreshAction;
+ private Action filterAction;
private Action launchAction;
private ImageView parentView;
@@ -175,6 +181,10 @@
}
});
+ filterLabel = new Label(container, SWT.NULL);
+ filterLabel.setText(CVMessages.getString(FILTERED_LABEL));
+ filterLabel.setToolTipText(CVMessages.getString(FILTERED_TOOLTIP));
+
Composite tableArea = new Composite(container, SWT.NULL);
TableColumnLayout tableLayout = new TableColumnLayout();
tableArea.setLayout(tableLayout);
@@ -205,6 +215,8 @@
currCloud.removeImageListListener(parentView);
viewer.setInput(currCloud);
currCloud.addImageListListener(parentView);
+ IImageFilter filter = currCloud.getImageFilter();
+ filterLabel.setVisible(!filter.toString().equals(IImageFilter.ALL_STRING));
}
Point p1 = cloudSelectorLabel.computeSize(SWT.DEFAULT, SWT.DEFAULT);
@@ -220,6 +232,11 @@
f.top = new FormAttachment(0, 5);
f.left = new FormAttachment(cloudSelectorLabel, 5);
cloudSelector.setLayoutData(f);
+
+ f = new FormData();
+ f.top = new FormAttachment(0, 5 + centering);
+ f.right = new FormAttachment(100, -10);
+ filterLabel.setLayoutData(f);
f = new FormData();
f.top = new FormAttachment(cloudSelector, 8);
@@ -273,6 +290,7 @@
private void fillLocalPullDown(IMenuManager manager) {
manager.add(refreshAction);
+ manager.add(filterAction);
}
private void fillContextMenu(IMenuManager manager) {
@@ -305,7 +323,31 @@
refreshAction.setToolTipText(CVMessages.getString(REFRESH));
refreshAction.setImageDescriptor(PlatformUI.getWorkbench().getSharedImages().
getImageDescriptor(ISharedImages.IMG_TOOL_REDO));
+
+ filterAction = new Action() {
+ public void run() {
+ Display.getDefault().asyncExec(new Runnable() {
+ @Override
+ public void run() {
+ // TODO Auto-generated method stub
+ Shell shell = viewer.getControl().getShell();
+ IWizard wizard = new ImageFilter(currCloud);
+ WizardDialog dialog = new WizardDialog(shell, wizard);
+ dialog.create();
+ dialog.open();
+ if (!currCloud.getImageFilter().toString().equals(IImageFilter.ALL_STRING))
+ filterLabel.setVisible(true);
+ else
+ filterLabel.setVisible(false);
+ }
+
+ });
+ }
+ };
+ filterAction.setText(CVMessages.getString(FILTER));
+ filterAction.setToolTipText(CVMessages.getString(FILTER));
+
launchAction = new Action() {
public void run() {
ISelection selection = viewer.getSelection();
@@ -320,7 +362,6 @@
WizardDialog dialog = new WizardDialog(shell, wizard);
dialog.create();
dialog.open();
-
}
});
Modified:
trunk/deltacloud/plugins/org.jboss.tools.deltacloud.ui/src/org/jboss/tools/deltacloud/ui/views/ImageViewLabelAndContentProvider.java
===================================================================
---
trunk/deltacloud/plugins/org.jboss.tools.deltacloud.ui/src/org/jboss/tools/deltacloud/ui/views/ImageViewLabelAndContentProvider.java 2010-10-06
21:16:10 UTC (rev 25538)
+++
trunk/deltacloud/plugins/org.jboss.tools.deltacloud.ui/src/org/jboss/tools/deltacloud/ui/views/ImageViewLabelAndContentProvider.java 2010-10-06
22:57:39 UTC (rev 25539)
@@ -10,6 +10,7 @@
*******************************************************************************/
package org.jboss.tools.deltacloud.ui.views;
+import java.util.ArrayList;
import java.util.EnumSet;
import java.util.HashMap;
import java.util.Map;
@@ -21,6 +22,7 @@
import org.eclipse.swt.graphics.Image;
import org.jboss.tools.deltacloud.core.DeltaCloud;
import org.jboss.tools.deltacloud.core.DeltaCloudImage;
+import org.jboss.tools.deltacloud.core.IImageFilter;
public class ImageViewLabelAndContentProvider extends BaseLabelProvider implements
IStructuredContentProvider, ITableLabelProvider {
@@ -81,14 +83,25 @@
public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
if (newInput != null) {
if (newInput instanceof DeltaCloudImage[]) {
- images = (DeltaCloudImage[])newInput;
+ images = filter((DeltaCloudImage[])newInput);
} else {
cloud = (DeltaCloud)newInput;
- images = cloud.getCurrImages();
+ images = filter(cloud.getCurrImages());
}
}
}
+ private DeltaCloudImage[] filter(DeltaCloudImage[] input) {
+ ArrayList<DeltaCloudImage> array = new ArrayList<DeltaCloudImage>();
+ IImageFilter f = cloud.getImageFilter();
+ for (int i = 0; i < input.length; ++i) {
+ DeltaCloudImage image = input[i];
+ if (f.isVisible(image))
+ array.add(image);
+ }
+ return array.toArray(new DeltaCloudImage[array.size()]);
+ }
+
@Override
public Image getColumnImage(Object element, int columnIndex) {
return null;
Added:
trunk/deltacloud/plugins/org.jboss.tools.deltacloud.ui/src/org/jboss/tools/internal/deltacloud/ui/wizards/ImageFilter.java
===================================================================
---
trunk/deltacloud/plugins/org.jboss.tools.deltacloud.ui/src/org/jboss/tools/internal/deltacloud/ui/wizards/ImageFilter.java
(rev 0)
+++
trunk/deltacloud/plugins/org.jboss.tools.deltacloud.ui/src/org/jboss/tools/internal/deltacloud/ui/wizards/ImageFilter.java 2010-10-06
22:57:39 UTC (rev 25539)
@@ -0,0 +1,43 @@
+package org.jboss.tools.internal.deltacloud.ui.wizards;
+
+import org.eclipse.jface.wizard.Wizard;
+import org.jboss.tools.deltacloud.core.DeltaCloud;
+import org.jboss.tools.deltacloud.core.DeltaCloudManager;
+
+public class ImageFilter extends Wizard {
+
+ private DeltaCloud cloud;
+ private ImageFilterPage mainPage;
+
+ public ImageFilter(DeltaCloud cloud) {
+ this.cloud = cloud;
+ }
+
+ @Override
+ public void addPages() {
+ // TODO Auto-generated method stub
+ mainPage = new ImageFilterPage(cloud);
+ addPage(mainPage);
+ }
+
+ @Override
+ public boolean canFinish() {
+ return mainPage.isPageComplete();
+ }
+
+ @Override
+ public boolean performFinish() {
+ String nameRule = mainPage.getNameRule();
+ String idRule = mainPage.getIdRule();
+ String archRule = mainPage.getArchRule();
+ String descRule = mainPage.getDescRule();
+
+ cloud.createImageFilter(nameRule + ";" + //$NON-NLS-1$
+ idRule + ";" + //$NON-NLS-1$
+ archRule + ";" + //$NON-NLS-1$
+ descRule); //$NON-NLS-1$
+
+ return true;
+ }
+
+}
Added:
trunk/deltacloud/plugins/org.jboss.tools.deltacloud.ui/src/org/jboss/tools/internal/deltacloud/ui/wizards/ImageFilterPage.java
===================================================================
---
trunk/deltacloud/plugins/org.jboss.tools.deltacloud.ui/src/org/jboss/tools/internal/deltacloud/ui/wizards/ImageFilterPage.java
(rev 0)
+++
trunk/deltacloud/plugins/org.jboss.tools.deltacloud.ui/src/org/jboss/tools/internal/deltacloud/ui/wizards/ImageFilterPage.java 2010-10-06
22:57:39 UTC (rev 25539)
@@ -0,0 +1,189 @@
+package org.jboss.tools.internal.deltacloud.ui.wizards;
+
+import org.eclipse.jface.wizard.WizardPage;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.events.ModifyEvent;
+import org.eclipse.swt.events.ModifyListener;
+import org.eclipse.swt.graphics.Point;
+import org.eclipse.swt.layout.FormAttachment;
+import org.eclipse.swt.layout.FormData;
+import org.eclipse.swt.layout.FormLayout;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Label;
+import org.eclipse.swt.widgets.Text;
+import org.jboss.tools.deltacloud.core.DeltaCloud;
+import org.jboss.tools.deltacloud.ui.SWTImagesFactory;
+
+public class ImageFilterPage extends WizardPage {
+
+ private final static String NAME = "ImageFilter.name"; //$NON-NLS-1$
+ private final static String TITLE = "ImageFilter.title"; //$NON-NLS-1$
+ private final static String DESC = "ImageFilter.desc"; //$NON-NLS-1$
+ private final static String FILTER_LABEL = "ImageFilter.label"; //$NON-NLS-1$
+ private final static String EMPTY_RULE = "ErrorFilterEmptyRule.msg";
//$NON-NLS-1$
+ private final static String INVALID_SEMICOLON = "ErrorFilterSemicolon.msg";
//$NON-NLS-1$
+ private final static String NAME_LABEL = "Name.label"; //$NON-NLS-1$
+ private final static String ID_LABEL = "Id.label"; //$NON-NLS-1$
+ private final static String ARCH_LABEL = "Arch.label"; //$NON-NLS-1$
+ private final static String DESC_LABEL = "Desc.label"; //$NON-NLS-1$
+
+ private DeltaCloud cloud;
+ private Text nameText;
+ private Text idText;
+ private Text archText;
+ private Text descText;
+
+ public ImageFilterPage(DeltaCloud cloud) {
+ super(WizardMessages.getString(NAME));
+ this.cloud = cloud;
+ setDescription(WizardMessages.getString(DESC));
+ setTitle(WizardMessages.getString(TITLE));
+ setImageDescriptor(SWTImagesFactory.DESC_DELTA_LARGE);
+ setPageComplete(false);
+ }
+
+ public String getNameRule() {
+ return nameText.getText();
+ }
+
+ public String getIdRule() {
+ return idText.getText();
+ }
+
+ public String getArchRule() {
+ return archText.getText();
+ }
+
+ public String getDescRule() {
+ return descText.getText();
+ }
+
+ private ModifyListener Listener = new ModifyListener() {
+
+ @Override
+ public void modifyText(ModifyEvent e) {
+ // TODO Auto-generated method stub
+ validate();
+ }
+ };
+
+ private void validate() {
+ boolean complete = true;
+ boolean error = false;
+
+ if (nameText.getText().length() == 0 ||
+ idText.getText().length() == 0 ||
+ archText.getText().length() == 0 ||
+ descText.getText().length() == 0) {
+
+ setErrorMessage(WizardMessages.getString(EMPTY_RULE));
+ error = true;
+ } else if (nameText.getText().contains(";") ||
+ idText.getText().contains(";") ||
+ archText.getText().contains(";") ||
+ descText.getText().contains(";")) {
+ setErrorMessage(WizardMessages.getString(INVALID_SEMICOLON));
+ error = true;
+ }
+ if (!error)
+ setErrorMessage(null);
+ setPageComplete(complete && !error);
+ }
+
+ @Override
+ public void createControl(Composite parent) {
+ final Composite container = new Composite(parent, SWT.NULL);
+ FormLayout layout = new FormLayout();
+ layout.marginHeight = 5;
+ layout.marginWidth = 5;
+ container.setLayout(layout);
+
+ Label label = new Label(container, SWT.NULL);
+ label.setText(WizardMessages.getString(FILTER_LABEL));
+
+ Label nameLabel = new Label(container, SWT.NULL);
+ nameLabel.setText(WizardMessages.getString(NAME_LABEL));
+
+ nameText = new Text(container, SWT.BORDER | SWT.SINGLE);
+ nameText.setText(cloud.getImageFilter().getNameRule().toString());
+ nameText.addModifyListener(Listener);
+
+ Label idLabel = new Label(container, SWT.NULL);
+ idLabel.setText(WizardMessages.getString(ID_LABEL));
+
+ idText = new Text(container, SWT.BORDER | SWT.SINGLE);
+ idText.setText(cloud.getImageFilter().getIdRule().toString());
+ idText.addModifyListener(Listener);
+
+ Label archLabel = new Label(container, SWT.NULL);
+ archLabel.setText(WizardMessages.getString(ARCH_LABEL));
+
+ archText = new Text(container, SWT.BORDER | SWT.SINGLE);
+ archText.setText(cloud.getImageFilter().getArchRule().toString());
+ archText.addModifyListener(Listener);
+
+ Label descLabel = new Label(container, SWT.NULL);
+ descLabel.setText(WizardMessages.getString(DESC_LABEL));
+
+ descText = new Text(container, SWT.BORDER | SWT.SINGLE);
+ descText.setText(cloud.getImageFilter().getDescRule().toString());
+ descText.addModifyListener(Listener);
+
+ Point p1 = label.computeSize(SWT.DEFAULT, SWT.DEFAULT);
+ Point p2 = nameText.computeSize(SWT.DEFAULT, SWT.DEFAULT);
+
+ int centering = (p2.y - p1.y + 1) / 2;
+
+ FormData f = new FormData();
+ f.top = new FormAttachment(0);
+ label.setLayoutData(f);
+
+ f = new FormData();
+ f.top = new FormAttachment(label, 8 + centering);
+ f.left = new FormAttachment(0, 0);
+ nameLabel.setLayoutData(f);
+
+ f = new FormData();
+ f.top = new FormAttachment(label, 8);
+ f.left = new FormAttachment(archLabel, 5);
+ f.right = new FormAttachment(100);
+ nameText.setLayoutData(f);
+
+ f = new FormData();
+ f.top = new FormAttachment(nameLabel, 8 + centering);
+ f.left = new FormAttachment(0, 0);
+ idLabel.setLayoutData(f);
+
+ f = new FormData();
+ f.top = new FormAttachment(nameLabel, 8);
+ f.left = new FormAttachment(archLabel, 5);
+ f.right = new FormAttachment(100);
+ idText.setLayoutData(f);
+
+ f = new FormData();
+ f.top = new FormAttachment(idLabel, 8 + centering);
+ f.left = new FormAttachment(0, 0);
+ archLabel.setLayoutData(f);
+
+ f = new FormData();
+ f.top = new FormAttachment(idLabel, 8);
+ f.left = new FormAttachment(archLabel, 5);
+ f.right = new FormAttachment(100);
+ archText.setLayoutData(f);
+
+ f = new FormData();
+ f.top = new FormAttachment(archLabel, 8 + centering);
+ f.left = new FormAttachment(0, 0);
+ descLabel.setLayoutData(f);
+
+ f = new FormData();
+ f.top = new FormAttachment(archLabel, 8);
+ f.left = new FormAttachment(archLabel, 5);
+ f.right = new FormAttachment(100);
+ descText.setLayoutData(f);
+
+ setControl(container);
+ setPageComplete(true);
+ }
+
+}
Modified:
trunk/deltacloud/plugins/org.jboss.tools.deltacloud.ui/src/org/jboss/tools/internal/deltacloud/ui/wizards/WizardMessages.properties
===================================================================
---
trunk/deltacloud/plugins/org.jboss.tools.deltacloud.ui/src/org/jboss/tools/internal/deltacloud/ui/wizards/WizardMessages.properties 2010-10-06
21:16:10 UTC (rev 25538)
+++
trunk/deltacloud/plugins/org.jboss.tools.deltacloud.ui/src/org/jboss/tools/internal/deltacloud/ui/wizards/WizardMessages.properties 2010-10-06
22:57:39 UTC (rev 25539)
@@ -23,8 +23,10 @@
Password.label=Password:
TestButton.label=Test
UnknownType.label=Unknown
+Id.label=ID:
Image.label=Image:
Arch.label=Architecture:
+Desc.label=Description:
Profile.label=Hardware Profile:
Properties.label=Profile Properties
Cpu.label=CPUs:
@@ -70,6 +72,14 @@
ManageKeys.title=Manage Keys
ManageKeys.name=Manage Keys
+ImageFilter.desc=Specify rules to determine which Images will appear in the dialog.
+ImageFilter.title=Image Filter
+ImageFilter.name=Image Filter
+
+ImageFilter.label=Show all images which match the following regex rules:
+ErrorFilterEmptyRule.msg=Rules cannot be empty strings
+ErrorFilterSemicolon.msg=Rules cannot contain a semi-colon character
+
ErrorInvalidDirectory.text=Specified directory is not a valid existing directory
Directory.label=Directory