package com.iambookmaster.client.quick; import com.google.gwt.event.dom.client.ChangeEvent; import com.google.gwt.event.dom.client.ChangeHandler; import com.google.gwt.event.dom.client.ClickEvent; import com.google.gwt.event.dom.client.ClickHandler; import com.google.gwt.user.client.ui.CheckBox; import com.google.gwt.user.client.ui.HorizontalPanel; import com.google.gwt.user.client.ui.Widget; import com.iambookmaster.client.beans.AbstractParameter; import com.iambookmaster.client.beans.Parameter; import com.iambookmaster.client.common.SimpleAbstractParameterListBox; import com.iambookmaster.client.editor.DiceValueWidget; import com.iambookmaster.client.model.Model; public class QuickParameterEditor extends QuickAbstractParameterEditor { private Parameter parameter; private CheckBox vital; private CheckBox negative; private CheckBox heroOnly; private SimpleAbstractParameterListBox<Parameter> limit; private DiceValueWidget heroValue; private CheckBox hasInitial; private CheckBox invisible; private CheckBox supressOneValue; public QuickParameterEditor(Model mod) { super(mod); } @Override public String getEditorName() { return appConstants.quickParameterTitle(); } @Override protected int getGridWidgetsCount() { return 7; } @Override public Widget getTail() { ClickHandler handler = new ClickHandler() { public void onClick(ClickEvent event) { if (event.getSource()==vital) { parameter.setVital(vital.getValue()); } else if (event.getSource()==negative) { parameter.setNegative(negative.getValue()); } else if (event.getSource()==heroOnly) { parameter.setHeroOnly(heroOnly.getValue()); } else if (event.getSource()==hasInitial) { parameter.setHeroHasInitialValue(hasInitial.getValue()); } else if (event.getSource()==invisible) { parameter.setInvisible(invisible.getValue()); } else if (event.getSource()==supressOneValue) { parameter.setSuppressOneValue(supressOneValue.getValue()); } updateParameter(event.getSource()); applyControls(); } }; vital = new CheckBox(); vital.addClickHandler(handler); vital.setTitle(appConstants.quickParameterVitalTitle()); addWidgetToGrid(vital, appConstants.quickParameterVital()); negative = new CheckBox(); negative.addClickHandler(handler); negative.setTitle(appConstants.quickParameterNegativeTitle()); addWidgetToGrid(negative, appConstants.quickParameterNegative()); heroOnly = new CheckBox(); heroOnly.addClickHandler(handler); heroOnly.setTitle(appConstants.quickParameterHeroOnlyTitle()); addWidgetToGrid(heroOnly, appConstants.quickParameterHeroOnly()); limit = new SimpleAbstractParameterListBox<Parameter>(Parameter.class,model,true); limit.setTitle(appConstants.quickParameterLimitTitle()); limit.addChangeHandler(new ChangeHandler(){ public void onChange(ChangeEvent event) { parameter.setLimit(limit.getSelectedParameter()); updateParameter(limit); } }); addWidgetToGrid(limit, appConstants.quickParameterLimit()); HorizontalPanel panel = new HorizontalPanel(); hasInitial = new CheckBox(); hasInitial.setTitle(appConstants.quickParameterHeroHasInitialValueTitle()); hasInitial.addClickHandler(handler); panel.add(hasInitial); heroValue = new DiceValueWidget(panel); heroValue.addChangeHandler(new ChangeHandler(){ public void onChange(ChangeEvent event) { parameter.setHeroInitialValue(heroValue.getDiceValue()); updateParameter(heroValue); } }); addWidgetToGrid(panel, appConstants.quickParameterInitialHeroValue()); invisible = new CheckBox(); invisible.setTitle(appConstants.quickParameterInvisibleFullTitle()); invisible.addClickHandler(handler); addWidgetToGrid(invisible, appConstants.quickParameterInvisibleTitle()); supressOneValue = new CheckBox(); supressOneValue.setTitle(appConstants.quickParameterSupressOneValueTitle()); supressOneValue.addClickHandler(handler); addWidgetToGrid(supressOneValue, appConstants.quickParameterSupressOneValue()); return null; } public void open(AbstractParameter object) { super.open(object); parameter = (Parameter) object; vital.setValue(parameter.isVital()); negative.setValue(parameter.isNegative()); heroOnly.setValue(parameter.isHeroOnly()); limit.setSelectedParameter(parameter.getLimit()); heroValue.apply(parameter.getHeroInitialValue()); hasInitial.setValue(parameter.isHeroHasInitialValue()); invisible.setValue(parameter.isInvisible()); supressOneValue.setValue(parameter.isSuppressOneValue()); applyControls(); } private void applyControls() { } }