[jbosstools-commits] JBoss Tools SVN: r23951 - in trunk/deltacloud/plugins/org.jboss.tools.deltacloud.ui: src/org/jboss/tools/internal/deltacloud/ui/wizards and 1 other directory.

jbosstools-commits at lists.jboss.org jbosstools-commits at lists.jboss.org
Thu Aug 5 16:37:55 EDT 2010


Author: jjohnstn
Date: 2010-08-05 16:37:55 -0400 (Thu, 05 Aug 2010)
New Revision: 23951

Modified:
   trunk/deltacloud/plugins/org.jboss.tools.deltacloud.ui/ChangeLog
   trunk/deltacloud/plugins/org.jboss.tools.deltacloud.ui/src/org/jboss/tools/internal/deltacloud/ui/wizards/NewInstancePage.java
   trunk/deltacloud/plugins/org.jboss.tools.deltacloud.ui/src/org/jboss/tools/internal/deltacloud/ui/wizards/ProfileComposite.java
   trunk/deltacloud/plugins/org.jboss.tools.deltacloud.ui/src/org/jboss/tools/internal/deltacloud/ui/wizards/WizardMessages.properties
Log:
2010-08-05  Jeff Johnston  <jjohnstn at redhat.com>

	* src/org/jboss/tools/internal/deltacloud/ui/wizards/NewInstancePage.java (.modifyText): Add
	logic to switch ProfileComposite. 
	(createControl): Add logic for setting up the ProfileComposite. 
	(getProfileIds): Set up currPage.
	* src/org/jboss/tools/internal/deltacloud/ui/wizards/ProfileComposite.java (ProfileComposite): Add
	logic to set up CPUs, Memory, and Storage settings. 
	(getMemory): Add check for decimal digits.
	(getStorage): Ditto. 
	* src/org/jboss/tools/internal/deltacloud/ui/wizards/WizardMessages.properties: Add new messages
	for ProfileComposite. 



Modified: trunk/deltacloud/plugins/org.jboss.tools.deltacloud.ui/ChangeLog
===================================================================
--- trunk/deltacloud/plugins/org.jboss.tools.deltacloud.ui/ChangeLog	2010-08-05 19:17:40 UTC (rev 23950)
+++ trunk/deltacloud/plugins/org.jboss.tools.deltacloud.ui/ChangeLog	2010-08-05 20:37:55 UTC (rev 23951)
@@ -1,3 +1,16 @@
+2010-08-05  Jeff Johnston  <jjohnstn at redhat.com>
+
+	* src/org/jboss/tools/internal/deltacloud/ui/wizards/NewInstancePage.java (.modifyText): Add
+	logic to switch ProfileComposite. 
+	(createControl): Add logic for setting up the ProfileComposite. 
+	(getProfileIds): Set up currPage.
+	* src/org/jboss/tools/internal/deltacloud/ui/wizards/ProfileComposite.java (ProfileComposite): Add
+	logic to set up CPUs, Memory, and Storage settings. 
+	(getMemory): Add check for decimal digits.
+	(getStorage): Ditto. 
+	* src/org/jboss/tools/internal/deltacloud/ui/wizards/WizardMessages.properties: Add new messages
+	for ProfileComposite. 
+
 2010-08-04  Jeff Johnston  <jjohnstn at redhat.com>
 
 	* src/org/jboss/tools/internal/deltacloud/ui/wizards/ProfileComposite.java: New file.

Modified: trunk/deltacloud/plugins/org.jboss.tools.deltacloud.ui/src/org/jboss/tools/internal/deltacloud/ui/wizards/NewInstancePage.java
===================================================================
--- trunk/deltacloud/plugins/org.jboss.tools.deltacloud.ui/src/org/jboss/tools/internal/deltacloud/ui/wizards/NewInstancePage.java	2010-08-05 19:17:40 UTC (rev 23950)
+++ trunk/deltacloud/plugins/org.jboss.tools.deltacloud.ui/src/org/jboss/tools/internal/deltacloud/ui/wizards/NewInstancePage.java	2010-08-05 20:37:55 UTC (rev 23951)
@@ -57,7 +57,8 @@
 		public void modifyText(ModifyEvent e) {
 			int index = hardware.getSelectionIndex();
 			currPage.setVisible(false);
-			profilePages[index].setVisible(true);
+			currPage = profilePages[index];
+			currPage.setVisible(true);
 		}
 	};
 	
@@ -104,7 +105,9 @@
 			DeltaCloudHardwareProfile p = profiles.get(i);
 			ids[i] = p.getId();
 			profilePages[i] = new ProfileComposite(p, container);
+			profilePages[i].setVisible(false);
 		}
+		currPage = profilePages[0];
 		return ids;
 	}
 	
@@ -144,14 +147,16 @@
 		FormLayout groupLayout = new FormLayout();
 		groupLayout.marginHeight = 0;
 		groupLayout.marginWidth = 0;
-		groupContainer.setLayout(groupLayout);		
+		groupContainer.setLayout(groupLayout);
 		
+		
 		profileIds = getProfileIds(groupContainer);
 		
 		if (profileIds.length > 0) {
 			hardware.setItems(profileIds);
 			hardware.setText(profileIds[0]);
-//			hardware.addModifyListener(comboListener);
+			profilePages[0].setVisible(true);
+			hardware.addModifyListener(comboListener);
 		}
 		
 		FormData f = new FormData();
@@ -202,6 +207,13 @@
 		f.right = new FormAttachment(100, 0);
 		hardware.setLayoutData(f);
 		
+		f = new FormData();
+		f.top = new FormAttachment(hardwareLabel, 8);
+		f.left = new FormAttachment(0, 0);
+		f.right = new FormAttachment(100, 0);
+		f.bottom = new FormAttachment(100, 0);
+		groupContainer.setLayoutData(f);
+		
 		setControl(container);
 	}
 

Modified: trunk/deltacloud/plugins/org.jboss.tools.deltacloud.ui/src/org/jboss/tools/internal/deltacloud/ui/wizards/ProfileComposite.java
===================================================================
--- trunk/deltacloud/plugins/org.jboss.tools.deltacloud.ui/src/org/jboss/tools/internal/deltacloud/ui/wizards/ProfileComposite.java	2010-08-05 19:17:40 UTC (rev 23950)
+++ trunk/deltacloud/plugins/org.jboss.tools.deltacloud.ui/src/org/jboss/tools/internal/deltacloud/ui/wizards/ProfileComposite.java	2010-08-05 20:37:55 UTC (rev 23951)
@@ -8,8 +8,12 @@
 import org.eclipse.swt.events.SelectionAdapter;
 import org.eclipse.swt.events.SelectionEvent;
 import org.eclipse.swt.events.SelectionListener;
+import org.eclipse.swt.layout.FormAttachment;
+import org.eclipse.swt.layout.FormData;
+import org.eclipse.swt.layout.FormLayout;
 import org.eclipse.swt.widgets.Button;
 import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Control;
 import org.eclipse.swt.widgets.Label;
 import org.eclipse.swt.widgets.Spinner;
 import org.jboss.tools.deltacloud.core.DeltaCloudHardwareProfile;
@@ -18,12 +22,25 @@
 public class ProfileComposite {
 	
 	private static final String CPU_LABEL = "Cpu.label"; //$NON-NLS-1$
+	private static final String MEMORY_LABEL = "Memory.label"; //$NON-NLS-1$
+	private static final String STORAGE_LABEL = "Storage.label"; //$NON-NLS-1$
 	
 	private Composite container;
 	private DeltaCloudHardwareProfile profile;
 	private String cpu;
 	private String cpuDefaultValue;
+	private Label cpuLabel;
 	private Button[] cpuButtons;
+	private String memory;
+	private String memoryDefaultValue;
+	private Label memoryLabel;
+	private Button[] memoryButtons;
+	private int memoryDecDigits;
+	private String storage;
+	private String storageDefaultValue;
+	private Label storageLabel;
+	private Button[] storageButtons;
+	private int storageDecDigits;
 	
 	private ModifyListener cpuSpinnerListener = new ModifyListener() {
 
@@ -50,17 +67,82 @@
 
 	};
 
-	public ProfileComposite(DeltaCloudHardwareProfile profile, Composite parent) {
-		this.profile = profile;
+	private ModifyListener memorySpinnerListener = new ModifyListener() {
+
+		@Override
+		public void modifyText(ModifyEvent e) {
+			memory = ((Spinner)e.widget).getText();
+		}
+	};
+
+	private SelectionListener memoryButtonListener = new SelectionAdapter() {
+
+		@Override
+		public void widgetSelected(SelectionEvent e) {
+			for (int i = 0; i < memoryButtons.length; ++i) {
+				Button b = memoryButtons[i];
+				if (b != e.widget) {
+					b.setSelection(false);
+				} else {
+					b.setSelection(true);
+					memory = b.getText();
+				}
+			}
+		}
+
+	};
+	
+	private ModifyListener storageSpinnerListener = new ModifyListener() {
+
+		@Override
+		public void modifyText(ModifyEvent e) {
+			storage = ((Spinner)e.widget).getText();
+		}
+	};
+
+	private SelectionListener storageButtonListener = new SelectionAdapter() {
+
+		@Override
+		public void widgetSelected(SelectionEvent e) {
+			for (int i = 0; i < storageButtons.length; ++i) {
+				Button b = storageButtons[i];
+				if (b != e.widget) {
+					b.setSelection(false);
+				} else {
+					b.setSelection(true);
+					storage = b.getText();
+				}
+			}
+		}
+
+	};
+
+	public ProfileComposite(DeltaCloudHardwareProfile p, Composite parent) {
+		this.profile = p;
 		container = new Composite(parent, SWT.NULL);
+		FormLayout layout = new FormLayout();
+		layout.marginHeight = 5;
+		layout.marginWidth = 5;
+		container.setLayout(layout);
+		Control cpuControl = null;
+		Control memoryControl = null;
 		
-		DeltaCloudHardwareProperty cpuProperty = profile.getNamedProperty("cpu");
+		DeltaCloudHardwareProperty cpuProperty = profile.getNamedProperty("cpu"); //$NON-NLS-1$
 		if (cpuProperty != null) {
-			Label cpuLabel = new Label(container, SWT.NULL);
+			cpuLabel = new Label(container, SWT.NULL);
 			cpuLabel.setText(WizardMessages.getString(CPU_LABEL));
+			FormData fd = new FormData();
+			fd.left = new FormAttachment(0, 0);
+			fd.top = new FormAttachment(0, 0);
+			cpuLabel.setLayoutData(fd);
 			if (cpuProperty.getKind() == DeltaCloudHardwareProperty.Kind.FIXED) {
 				Label cpu = new Label(container, SWT.NULL);
 				cpu.setText(cpuProperty.getValue());
+				FormData f = new FormData();
+				f.left = new FormAttachment(cpuLabel, 5);
+				f.right = new FormAttachment(100, 0);
+				cpu.setLayoutData(f);
+				cpuControl = cpu;
 			} else if (cpuProperty.getKind() == DeltaCloudHardwareProperty.Kind.RANGE) {
 				cpuDefaultValue = cpuProperty.getValue();
 				Spinner cpuSpinner = new Spinner(container, SWT.READ_ONLY);
@@ -68,6 +150,10 @@
 				cpuSpinner.setMaximum(Integer.valueOf(cpuProperty.getRange().getLast()));
 				cpuSpinner.addModifyListener(cpuSpinnerListener);
 				cpuSpinner.setSelection(Integer.valueOf(cpuDefaultValue));
+				FormData f = new FormData();
+				f.left = new FormAttachment(cpuLabel, 5);
+				cpuSpinner.setLayoutData(f);
+				cpuControl = cpuSpinner;
 			} else if (cpuProperty.getKind() == DeltaCloudHardwareProperty.Kind.ENUM) {
 				cpuDefaultValue = cpuProperty.getValue();
 				List<String> values = cpuProperty.getEnums();
@@ -79,10 +165,216 @@
 					if (value.equals(cpuDefaultValue))
 						button.setSelection(true);
 					button.addSelectionListener(cpuButtonListener);
-					cpuButtons[i] = button;				
+					cpuButtons[i] = button;
+					cpuControl = button;
+					FormData f = new FormData();
+					if (i % 3 == 0) {
+					   	f.left = new FormAttachment(cpuLabel, 5);
+					   	if (i > 2) {
+					   		f.top = new FormAttachment(cpuButtons[i-3]);
+					   	}
+					} else {
+						f.left = new FormAttachment(cpuButtons[i-1]);
+						if (i > 3)
+							f.top = new FormAttachment(cpuButtons[i-3]);
+					}
+					button.setLayoutData(f);
 				}
 			}
 		}
+		DeltaCloudHardwareProperty memoryProperty = profile.getNamedProperty("memory"); //$NON-NLS-1$
+		if (memoryProperty != null) {
+			memoryLabel = new Label(container, SWT.NULL);
+			memoryLabel.setText(WizardMessages.getString(MEMORY_LABEL));
+			FormData fd = new FormData();
+			fd.left = new FormAttachment(cpuLabel, 0, SWT.LEFT);
+			fd.top = new FormAttachment(cpuLabel, 8);
+			memoryLabel.setLayoutData(fd);
+			if (memoryProperty.getKind() == DeltaCloudHardwareProperty.Kind.FIXED) {
+				Label memory = new Label(container, SWT.NULL);
+				memory.setText(memoryProperty.getValue());
+				FormData f = new FormData();
+				f.top = new FormAttachment(cpuControl, 8);
+				f.left = new FormAttachment(memoryLabel, 5);
+				f.right = new FormAttachment(100, 0);
+				memory.setLayoutData(f);
+				memoryControl = memory;
+			} else if (memoryProperty.getKind() == DeltaCloudHardwareProperty.Kind.RANGE) {
+				memoryDefaultValue = memoryProperty.getValue();
+				int indexDefault = memoryDefaultValue.indexOf('.');
+				int decDigitsDefault = 0;
+				if (indexDefault >= 0) {
+					decDigitsDefault = memoryDefaultValue.length() - indexDefault - 1;
+					memoryDefaultValue = memoryDefaultValue.replace(".", ""); //$NON-NLS-1$ //$NON-NLS-2$
+				}
+				Spinner memorySpinner = new Spinner(container, SWT.READ_ONLY | SWT.BORDER);
+				String first = memoryProperty.getRange().getFirst();
+				int indexFirst = first.indexOf('.');
+				int decDigitsFirst = 0;
+				if (indexFirst >= 0) {
+					decDigitsFirst = first.length() - indexFirst - 1;
+					first = first.replace(".", ""); //$NON-NLS-1$ $NON-NLS-2$
+				}
+				String last = memoryProperty.getRange().getLast();
+				int indexLast = first.indexOf('.');
+				int decDigitsLast = 0;
+				if (indexLast >= 0) {
+					decDigitsLast = last.length() - indexLast - 1;
+					last = last.replace(".", ""); //$NON-NLS-1$ //$NON-NLS-2$
+				}
+				int decDigits = Math.max(decDigitsFirst, decDigitsLast);
+				memoryDecDigits = Math.max(decDigits, decDigitsDefault);
+				if (decDigitsFirst < memoryDecDigits) {
+					for (int i= 0; i < memoryDecDigits - decDigitsFirst; ++i)
+						first = first.concat("0"); //$NON-NLS-1$
+				} 
+				if (decDigitsLast < memoryDecDigits) {
+					for (int i = 0; i < memoryDecDigits - decDigitsLast; ++i)
+						last = last.concat("0"); //$NON-NLS-1$
+				} 
+				if (decDigitsDefault < memoryDecDigits) {
+					for (int i = 0; i < memoryDecDigits - decDigitsLast; ++i)
+						memoryDefaultValue = memoryDefaultValue.concat("0"); //$NON-NLS-1$
+				}
+				memorySpinner.setMinimum(Integer.valueOf(first));
+				memorySpinner.setMaximum(Integer.valueOf(last));
+				memorySpinner.setDigits(memoryDecDigits);
+				memorySpinner.addModifyListener(memorySpinnerListener);
+				memorySpinner.setSelection(Integer.valueOf(memoryDefaultValue));
+				FormData f = new FormData();
+				f.left = new FormAttachment(memoryLabel, 5);
+				f.top = new FormAttachment(cpuControl, 5);
+				memorySpinner.setLayoutData(f);
+				memoryControl = memorySpinner;
+			} else if (memoryProperty.getKind() == DeltaCloudHardwareProperty.Kind.ENUM) {
+				memoryDefaultValue = memoryProperty.getValue();
+				List<String> values = memoryProperty.getEnums();
+				memoryButtons = new Button[values.size()];
+				for (int i = 0; i < values.size(); ++i) {
+					Button button = new Button(container, SWT.RADIO);
+					String value = values.get(i);
+					button.setText(value);
+					if (value.equals(memoryDefaultValue))
+						button.setSelection(true);
+					button.addSelectionListener(memoryButtonListener);
+					memoryButtons[i] = button;
+					memoryControl = button;
+					FormData f = new FormData();
+					if (i % 3 == 0) {
+					   	f.left = new FormAttachment(memoryLabel, 5);
+					   	if (i > 2) {
+					   		f.top = new FormAttachment(memoryButtons[i-3]);
+					   	} else {
+					   		f.top = new FormAttachment(cpuControl);
+					   	}
+					} else {
+						f.left = new FormAttachment(memoryButtons[i-1]);
+						if (i > 3)
+							f.top = new FormAttachment(memoryButtons[i-3]);
+						else
+							f.top = new FormAttachment(cpuControl);
+					}
+					button.setLayoutData(f);
+				}
+			}
+		}
+		DeltaCloudHardwareProperty storageProperty = profile.getNamedProperty("storage"); //$NON-NLS-1$
+		if (storageProperty != null) {
+			storageLabel = new Label(container, SWT.NULL);
+			storageLabel.setText(WizardMessages.getString(STORAGE_LABEL));
+			FormData fd = new FormData();
+			fd.left = new FormAttachment(cpuLabel, 0, SWT.LEFT);
+			fd.top = new FormAttachment(memoryLabel, 8);
+			storageLabel.setLayoutData(fd);
+			if (storageProperty.getKind() == DeltaCloudHardwareProperty.Kind.FIXED) {
+				Label storage = new Label(container, SWT.NULL);
+				storage.setText(storageProperty.getValue());
+				FormData f = new FormData();
+				f.left = new FormAttachment(storageLabel, 5);
+				f.top = new FormAttachment(memoryControl, 8);
+				f.right = new FormAttachment(100, 0);
+				storage.setLayoutData(f);
+				storage.setVisible(true);
+			} else if (storageProperty.getKind() == DeltaCloudHardwareProperty.Kind.RANGE) {
+				storageDefaultValue = storageProperty.getValue();
+				int indexDefault = storageDefaultValue.indexOf('.');
+				int decDigitsDefault = 0;
+				if (indexDefault >= 0) {
+					decDigitsDefault = storageDefaultValue.length() - indexDefault - 1;
+					storageDefaultValue = storageDefaultValue.replace(".", ""); //$NON-NLS-1$ //$NON-NLS-2$
+				}
+				Spinner storageSpinner = new Spinner(container, SWT.READ_ONLY | SWT.BORDER);
+				String first = memoryProperty.getRange().getFirst();
+				int indexFirst = first.indexOf('.');
+				int decDigitsFirst = 0;
+				if (indexFirst >= 0) {
+					decDigitsFirst = first.length() - indexFirst - 1;
+					first = first.replace(".", ""); //$NON-NLS-1$ //$NON-NLS-2$
+				}
+				String last = memoryProperty.getRange().getLast();
+				int indexLast = first.indexOf('.');
+				int decDigitsLast = 0;
+				if (indexLast >= 0) {
+					decDigitsLast = last.length() - indexLast - 1;
+					last = last.replace(".", ""); //$NON-NLS-1$ //$NON-NLS-2$
+				}
+				int decDigits = Math.max(decDigitsFirst, decDigitsLast);
+				storageDecDigits = Math.max(decDigits, decDigitsDefault);
+				if (decDigitsFirst < storageDecDigits) {
+					for (int i= 0; i < storageDecDigits - decDigitsFirst; ++i)
+						first = first.concat("0"); //$NON-NLS-1$
+				} 
+				if (decDigitsLast < storageDecDigits) {
+					for (int i = 0; i < storageDecDigits - decDigitsLast; ++i)
+						last = last.concat("0"); //$NON-NLS-1$
+				}
+				if (decDigitsDefault < storageDecDigits) {
+					for (int i = 0; i < storageDecDigits - decDigitsLast; ++i)
+						storageDefaultValue = storageDefaultValue.concat("0"); //$NON-NLS-1$
+				}
+				storageSpinner.setMinimum(Integer.valueOf(first));
+				storageSpinner.setMaximum(Integer.valueOf(last));
+				storageSpinner.setDigits(storageDecDigits);
+				storageSpinner.addModifyListener(storageSpinnerListener);
+				storageSpinner.setSelection(Integer.valueOf(storageDefaultValue));
+				FormData f = new FormData();
+				f.top = new FormAttachment(memoryControl, 5);
+				f.left = new FormAttachment(storageLabel, 5);
+				storageSpinner.setLayoutData(f);
+			} else if (storageProperty.getKind() == DeltaCloudHardwareProperty.Kind.ENUM) {
+				storageDefaultValue = storageProperty.getValue();
+				List<String> values = storageProperty.getEnums();
+				storageButtons = new Button[values.size()];
+				for (int i = 0; i < values.size(); ++i) {
+					Button button = new Button(container, SWT.RADIO);
+					String value = values.get(i);
+					button.setText(value);
+					if (value.equals(storageDefaultValue))
+						button.setSelection(true);
+					button.addSelectionListener(storageButtonListener);
+					storageButtons[i] = button;
+					FormData f = new FormData();
+					if (i % 3 == 0) {
+					   	f.left = new FormAttachment(storageLabel, 5);
+					   	if (i > 2) {
+					   		f.top = new FormAttachment(storageButtons[i-3]);
+					   	} else {
+					   		f.top = new FormAttachment(memoryControl);
+					   	}
+					} else {
+						f.left = new FormAttachment(storageButtons[i-1]);
+						if (i > 3)
+							f.top = new FormAttachment(storageButtons[i-3]);
+						else
+							f.top = new FormAttachment(memoryControl);
+					}
+					button.setLayoutData(f);
+				}
+			}
+		}
+		Label dummyLabel = new Label(container, SWT.NULL);
+		FormData fd = new FormData();
+		fd.top = new FormAttachment(storageLabel, 0);
 	}
 	
 	public void setVisible(boolean visible) {
@@ -94,4 +386,30 @@
 			return cpu;
 		return null;
 	}
+	
+	public String getMemory() {
+		if (memory != null && !memory.equals(memoryDefaultValue)) {
+			String retVal = memory;
+			if (memoryDecDigits > 0) {
+				// Need to put back decimal point in returned value when we used the spinner
+				retVal = retVal.substring(0, retVal.length() - memoryDecDigits).concat(".").
+				concat(memory.substring(memory.length() - memoryDecDigits));
+			}
+			return retVal;
+		}
+		return null;
+	}
+	
+	public String getStorage() {
+		if (storage != null && !storage.equals(storageDefaultValue)) {
+			String retVal = storage;
+			if (storageDecDigits > 0) {
+				// Need to put back decimal point in returned value when we used the spinner
+				retVal = retVal.substring(0, retVal.length() - storageDecDigits).concat(".").
+				concat(storage.substring(storage.length() - storageDecDigits));
+			}
+			return retVal;
+		}
+		return null;
+	}
 }

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-08-05 19:17:40 UTC (rev 23950)
+++ trunk/deltacloud/plugins/org.jboss.tools.deltacloud.ui/src/org/jboss/tools/internal/deltacloud/ui/wizards/WizardMessages.properties	2010-08-05 20:37:55 UTC (rev 23951)
@@ -15,6 +15,8 @@
 Arch.label=Architecture:
 Profiles.label=Hardware Profiles:
 Cpu.label=CPUs:
+Memory.label=Memory:
+Storage.label=Storage:
 
 EC2UserNameLink.text=For EC2 use the <a href="https://console.aws.amazon.com/ec2/home">Access ID</a>
 EC2PasswordLink.text=For EC2 use the <a href="https://console.aws.amazon.com/ec2/home">Access Secret Key</a>



More information about the jbosstools-commits mailing list