package com.chemhack.jsMolEditor.client.dialog; import com.google.gwt.user.client.ui.*; import com.google.gwt.user.client.Window; import com.chemhack.jsMolEditor.client.controller.EditorController; import com.chemhack.jsMolEditor.client.renderer.RendererModel; public class OptionDialog extends DialogBox { public OptionDialog(final EditorController controller) { super(); this.setText("Options"); final RendererModel rendererModel = controller.getRenderer().getRendererModel(); VerticalPanel dialogContent = new VerticalPanel(); dialogContent.setWidth("300px"); dialogContent.setSpacing(4); dialogContent.setHorizontalAlignment(HasHorizontalAlignment.ALIGN_LEFT); // CheckBox cbShowImplicitHydrogens = new CheckBox("Show Implicit Hydrogens"); // cbShowImplicitHydrogens.setChecked(rendererModel.isShowImplicitHydrogens()); // // CheckBox cbShowExplicitHydrogens = new CheckBox("Show Explicit Hydrogens"); // cbShowExplicitHydrogens.setChecked(rendererModel.isShowExplicitHydrogens()); // // CheckBox cbShowEndCarbon = new CheckBox("Show End Carbon"); // cbShowEndCarbon.setChecked(rendererModel.isShowEndCarbons()); HorizontalPanel hpBondWidth = new HorizontalPanel(); hpBondWidth.setSpacing(4); Label lbBondWidth = new Label("Bond Width:"); final TextBox tbBondWidth = new TextBox(); tbBondWidth.setMaxLength(5); tbBondWidth.setWidth("50px"); tbBondWidth.setText(String.valueOf(rendererModel.getBondWidth())); tbBondWidth.addFocusListener(new FocusListener() { public void onFocus(Widget sender) { //Do nothing } public void onLostFocus(Widget sender) { TextBox tb = (TextBox) sender; try { Double.valueOf(tb.getText()); } catch (NumberFormatException e) { Window.alert("Bond Width must be a valid float number."); tb.setFocus(true); } } }); Label lbBondWidth2 = new Label("Pixels"); hpBondWidth.add(lbBondWidth); hpBondWidth.add(tbBondWidth); hpBondWidth.add(lbBondWidth2); HorizontalPanel hpBackColor = new HorizontalPanel(); hpBackColor.setSpacing(4); Label lbBackColor = new Label("Background Color:"); final TextBox tbBackColor = new TextBox(); tbBackColor.setMaxLength(5); tbBackColor.setWidth("50px"); tbBackColor.setText(String.valueOf(rendererModel.getBackColor())); hpBackColor.add(lbBackColor); hpBackColor.add(tbBackColor); HorizontalPanel hpForeColor = new HorizontalPanel(); hpForeColor.setSpacing(4); Label lbForeColor = new Label("Foreground Color:"); final TextBox tbForeColor = new TextBox(); tbForeColor.setMaxLength(5); tbForeColor.setWidth("50px"); tbForeColor.setText(String.valueOf(rendererModel.getForeColor())); hpForeColor.add(lbForeColor); hpForeColor.add(tbForeColor); HorizontalPanel hpButtons = new HorizontalPanel(); hpButtons.setSpacing(5); Button btSave = new Button("Save"); btSave.addClickListener(new ClickListener() { public void onClick(Widget sender) { rendererModel.setBackColor(tbBackColor.getText()); rendererModel.setForeColor(tbForeColor.getText()); rendererModel.setBondWidth(Double.valueOf(tbBondWidth.getText())); controller.refreshView(); hide(); } }); Button btSavePerm = new Button("Save Permanently"); btSavePerm.addClickListener(new ClickListener() { public void onClick(Widget sender) { hide(); } }); Button btCancel = new Button("Cancel"); btCancel.addClickListener(new ClickListener() { public void onClick(Widget sender) { hide(); } }); hpButtons.add(btSave); hpButtons.add(btCancel); // dialogContent.add(cbShowImplicitHydrogens); // dialogContent.add(cbShowExplicitHydrogens); // dialogContent.add(cbShowEndCarbon); dialogContent.add(hpBondWidth); dialogContent.add(hpBackColor); dialogContent.add(hpForeColor); dialogContent.add(hpButtons); dialogContent.setCellHorizontalAlignment(hpButtons, HasHorizontalAlignment.ALIGN_RIGHT); this.setWidget(dialogContent); } }