/** * Adds a user defined tool to the exercise as well as the view * * @param macro the user defined tool which should be added to the exercise as well as the view */ void addAssignment(Macro macro) { if (!exercise.usesMacro(macro)) { Assignment a = exercise.addAssignment(macro); appendAssignmentRow(a); } userAddModes.setVisible(false); }
/** * Brings up a new ExerciseBuilderDialog * * @param app application */ public ExerciseBuilderDialog(App app) { super(false, false, null, ((AppW) app).getPanel()); this.app = (AppW) app; // exerciseBuilderHandler = new ExerciseBuilderDOMHandler(); exercise = app.getKernel().getExercise(); if (exercise.isEmpty()) { exercise.initStandardExercise(); } createGUI(); }
private void createGUI() { getCaption().setText(app.getMenu("Exercise.CreateNew")); setWidget(mainWidget = new VerticalPanel()); addDomHandlers(mainWidget); assignmentsTable = new FlexTable(); FlexCellFormatter cellFormatter = assignmentsTable.getFlexCellFormatter(); cellFormatter.setColSpan(0, 1, 2); assignmentsTable.setWidget(0, 1, new Label(app.getPlain("Tool"))); assignmentsTable.setWidget(0, 2, new Label(app.getPlain("HintForCorrect"))); assignmentsTable.setWidget(0, 3, new Label(app.getPlain("Fraction"))); createAssignmentsTable(); checkAssignmentsTable = new FlexTable(); checkAssignmentsTable.setVisible(false); mainWidget.add(assignmentsTable); mainWidget.add(checkAssignmentsTable); addList = new UnorderedList(); addDomHandlers(addList); // addIcon = new ListItem(); Image addIcon = new Image(GuiResources.INSTANCE.menu_icon_file_new()); ListItem addListItem = new ListItem(); addListItem.addStyleName("toolbar_item"); addListItem.add(addIcon); addList.add(addListItem); userAddModes = new ToolbarSubemuW(app, 1); userAddModes.addStyleName("toolbar_item"); userAddModes.setVisible(false); for (int i = 0; i < app.getKernel().getMacroNumber(); i++) { if (!exercise.usesMacro(i)) { ListItem item = userAddModes.addItem(i + EuclidianConstants.MACRO_MODE_ID_OFFSET); addDomHandlers(item); } } addList.add(userAddModes); mainWidget.add(addList); mainWidget.add(bottomWidget = new FlowPanel()); bottomWidget.setStyleName("DialogButtonPanel"); btApply = new Button(app.getPlain("OK")); btApply.addClickHandler(this); btApply.getElement().getStyle().setMargin(3, Style.Unit.PX); addCancelButton(); btTest = new Button(app.getPlain("Test")); btTest.addClickHandler(this); btTest.getElement().getStyle().setMargin(3, Style.Unit.PX); bottomWidget.add(btTest); bottomWidget.add(btApply); // bottomWidget.add(btCancel); }
/** * If add symbol is clicked, <br> * a ToolCreationDialog will be created, if there are no (more) Macros which can be used for the * Exercise <br> * or a SubMenu like chooser of the tools which can be used for the Exercise will be shown. */ void handleAddClick() { if (app.getKernel().getMacroNumber() == 0 || app.getKernel().getMacroNumber() <= exercise.getParts().size()) { newTool(); } else { userAddModes.setVisible(true); } }
/** * Handles the remove of an Assignment from the Exercise * * @param event the original event to determine which row should be removed from Table * @param assignment the assignment to remove from the Exercise */ void handleAssignmentDeleteClick(ClickEvent event, Assignment assignment) { ListItem item = userAddModes.addItem( app.getKernel().getMacroID(assignment.getTool()) + EuclidianConstants.MACRO_MODE_ID_OFFSET); addDomHandlers(item); exercise.remove(assignment); assignmentsTable.removeRow(assignmentsTable.getCellForEvent(event).getRowIndex()); }
private void check() { exercise.checkExercise(); int k = 1; int i = 0; // keep track of the row we're in checkAssignmentsTable.setWidget(i, k++, new Label(app.getMenu("Tool"))); checkAssignmentsTable.setWidget(i, k++, new Label(app.getPlain("Result"))); checkAssignmentsTable.setWidget(i, k++, new Label(app.getPlain("HintForResult"))); checkAssignmentsTable.setWidget(i, k++, new Label(app.getPlain("Fraction"))); i++; ArrayList<Assignment> parts = exercise.getParts(); for (int j = 0; j < parts.size(); j++, i++) { final Assignment assignment = parts.get(j); Image icon = new Image(); icon.setUrl(getIconFile(assignment.getIconFileName())); k = 0; checkAssignmentsTable.setWidget(i, k++, icon); checkAssignmentsTable.setWidget(i, k++, new Label(assignment.getToolName())); checkAssignmentsTable.setWidget(i, k++, new Label(assignment.getResult().name())); checkAssignmentsTable.setWidget(i, k++, new Label(assignment.getHint())); checkAssignmentsTable.setWidget( i, k++, new Label( app.getKernel() .format(assignment.getFraction() * 100, StringTemplate.defaultTemplate))); } checkAssignmentsTable.setWidget(i, k = 0, new Label(app.getPlain("FractionTotal"))); checkAssignmentsTable.setWidget( i, k++, new Label( app.getKernel().format(exercise.getFraction() * 100, StringTemplate.defaultTemplate))); }
private void createAssignmentsTable() { for (Assignment assignment : exercise.getParts()) { appendAssignmentRow(assignment); } }