package org.gcube.portlets.admin.vredeployer.client.view.panels; import org.gcube.portlets.admin.vredeployer.client.constants.ImagesConstants; import org.gcube.portlets.admin.vredeployer.client.control.Controller; import com.extjs.gxt.ui.client.Style.HorizontalAlignment; import com.extjs.gxt.ui.client.Style.Orientation; import com.extjs.gxt.ui.client.event.ButtonEvent; import com.extjs.gxt.ui.client.event.Events; import com.extjs.gxt.ui.client.event.FieldEvent; import com.extjs.gxt.ui.client.event.Listener; import com.extjs.gxt.ui.client.event.SelectionListener; import com.extjs.gxt.ui.client.widget.ContentPanel; import com.extjs.gxt.ui.client.widget.HorizontalPanel; import com.extjs.gxt.ui.client.widget.Html; import com.extjs.gxt.ui.client.widget.LayoutContainer; import com.extjs.gxt.ui.client.widget.button.Button; import com.extjs.gxt.ui.client.widget.form.CheckBox; import com.extjs.gxt.ui.client.widget.form.CheckBoxGroup; import com.extjs.gxt.ui.client.widget.form.FieldSet; import com.extjs.gxt.ui.client.widget.form.FormPanel; import com.extjs.gxt.ui.client.widget.form.SimpleComboBox; import com.extjs.gxt.ui.client.widget.form.ComboBox.TriggerAction; import com.extjs.gxt.ui.client.widget.layout.FormData; import com.extjs.gxt.ui.client.widget.layout.FormLayout; import com.extjs.gxt.ui.client.widget.layout.RowData; import com.extjs.gxt.ui.client.widget.layout.RowLayout; import com.extjs.gxt.ui.client.widget.layout.TableData; import com.google.gwt.user.client.Window; import com.google.gwt.user.client.ui.Image; public class EastPanel extends ContentPanel { /** * */ private Controller controller; /** * constructor * @param c - */ public EastPanel(Controller c) { controller = c; setWidth("100%"); setHeight("100%"); } /** * */ public void showCloudPanel(boolean selected, int vmSelected) { setHeading("deploy VRE Services on Cloud"); final Button saveButton = new Button("Commit changes"); saveButton.setEnabled(false); removeAll(); unmask(); LayoutContainer toShow = new LayoutContainer(); HorizontalPanel hp = new HorizontalPanel(); hp.setWidth("100%"); hp.setTableWidth("100%"); TableData td = new TableData(); td.setHorizontalAlign(HorizontalAlignment.CENTER); //toShow.setStyleAttribute("margin", "10px"); RowLayout rlayout = new RowLayout(Orientation.VERTICAL); toShow.setLayout(rlayout); String toAdd = ""; toAdd = "
Cloud available
"; hp.add(new Html(toAdd), td); HorizontalPanel hp2 = new HorizontalPanel(); hp2.setWidth("100%"); hp2.setTableWidth("100%"); hp2.add(new Image(ImagesConstants.CLOUD_IMAGE), td); toShow.add(hp); toShow.add(hp2); FormData formData = new FormData("-20"); FormPanel form = new FormPanel(); form.setHeaderVisible(false); form.setBorders(false); form.setBodyBorder(false); form.setFrame(false); form.setWidth("100%"); FieldSet fieldSet = new FieldSet(); fieldSet.setHeading("Resources Setup"); //fieldSet.setCheckboxToggle(true); FormLayout layout = new FormLayout(); layout.setLabelWidth(100); fieldSet.setLayout(layout); final CheckBox useCloud = new CheckBox(); useCloud.addListener(Events.Change, new Listener() { public void handleEvent(FieldEvent be) { boolean checked = useCloud.getValue(); controller.maskCenterPanel(checked); saveButton.setEnabled(checked); } }); controller.maskCenterPanel(selected); useCloud.setValue(selected); useCloud.setBoxLabel(""); CheckBoxGroup checkGroup = new CheckBoxGroup(); checkGroup.setFieldLabel("Use Cloud"); checkGroup.add(useCloud); final SimpleComboBox combo = new SimpleComboBox(); combo.setFieldLabel("Virtual machines"); combo.add("2"); combo.add("3"); combo.add("4"); combo.add("5"); combo.add("10"); combo.add("20"); combo.setTriggerAction(TriggerAction.ALL); combo.setSimpleValue("2"); combo.setAllowBlank(false); combo.setEditable(false); if (vmSelected != -1) { combo.setSimpleValue(""+vmSelected); } fieldSet.add(checkGroup, formData); fieldSet.add(combo, formData); form.add(fieldSet, formData); form.addButton(saveButton); saveButton.addSelectionListener(new SelectionListener() { @Override public void componentSelected(ButtonEvent ce) { int vMachines = Integer.parseInt(combo.getSimpleValue()); controller.setCloudSelected(true, vMachines); } }); toShow.add(form, new RowData(-1, 165)); add(toShow); layout(); } }