private void initClickModeSelectionUI(IGame game) { DockPanel clickModePanel = new DockPanel(); add(clickModePanel); clickModePanel.setWidth( Integer.toString(FieldCanvas.SIZE * game.getBoard().getDimension().x) + "px"); clickModePanel.setHorizontalAlignment(DockPanel.ALIGN_CENTER); clickOpenButton = new RadioButton("ClickOpens", "click opens"); clickOpenButton.setValue(true); clickFlagButton = new RadioButton("ClickFlags", "click flags"); clickFlagButton.setValue(false); ValueChangeHandler<Boolean> checkBoxToggler = new ValueChangeHandler<Boolean>() { @Override public void onValueChange(ValueChangeEvent<Boolean> event) { CheckBox checkBox = (CheckBox) event.getSource(); if (checkBox == clickOpenButton) clickFlagButton.setValue(!event.getValue()); else clickOpenButton.setValue(!event.getValue()); } }; clickOpenButton.addValueChangeHandler(checkBoxToggler); clickFlagButton.addValueChangeHandler(checkBoxToggler); clickModePanel.add(clickFlagButton, DockPanel.WEST); clickModePanel.add(clickOpenButton, DockPanel.EAST); clickModePanel.setCellHorizontalAlignment(clickOpenButton, DockPanel.ALIGN_LEFT); clickModePanel.setCellHorizontalAlignment(clickFlagButton, DockPanel.ALIGN_RIGHT); }
private void initMessageUI() { messageBox = new TextBox(); messageBox.setReadOnly(true); messageBox.setWidth(FieldCanvas.SIZE * game.getBoard().getDimension().x + "px"); messageBox.setText("Click field to start game."); add(messageBox); }
private void initBoardUI() { final ClickHandler clickListener = new ClickHandler() { @Override public void onClick(ClickEvent event) { boolean shiftKey = event.isShiftKeyDown(); FieldCanvas canvas = (FieldCanvas) event.getSource(); IField field = canvas.getField(); if (clickOpenButton.getValue() != shiftKey) // logical XOR game.onRequestOpen(field); else game.onRequestFlag(field); } }; gameCanvas = new BoardCanvas(game.getBoard(), clickListener); add(gameCanvas); }
private void initCountersUI() { DockPanel counterPanel = new DockPanel(); add(counterPanel); minesCounter = new Counter(3); minesCounter.setValue(game.getBombCount()); counterPanel.add(minesCounter, DockPanel.WEST); final Counter timeCounter = new Counter(3); counterPanel.setHorizontalAlignment(DockPanel.ALIGN_RIGHT); counterPanel.add(timeCounter, DockPanel.EAST); counterPanel.setWidth( Integer.toString(FieldCanvas.SIZE * game.getBoard().getDimension().x) + "px"); game.getWatch() .addListener( new IStopWatchListener() { @Override public void onTimeChange(int currentTime) { timeCounter.setValue(currentTime); } }); }