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(a)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(a)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(a)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>