/** * Build content 'evaluation process' of tab 3. * * @return content of third tab */ private Layout buildTab3Content() { VerticalLayout tab3Content = new VerticalLayout(); tab3Content.setSpacing(true); tab3Content.setMargin(true); tab3Content.setSizeFull(); Label instructions = new Label( "<b>Instructions:</b> <i>Please select and click a sentence below in order to process the evaluation.</i>", Label.CONTENT_XHTML); tab3Content.addComponent(instructions); this.tableEvaluation = new Table("Evaluation process:"); tableEvaluation.setHeight("150px"); tableEvaluation.setWidth("100%"); tableEvaluation.setImmediate(true); tableEvaluation.setSelectable(true); tableEvaluation.setMultiSelect(false); tableEvaluation.setSortDisabled(false); tableEvaluation.addContainerProperty("ID", Integer.class, null); tableEvaluation.addContainerProperty("Sentence", String.class, null); tableEvaluation.addContainerProperty("Precision", Double.class, null); tableEvaluation.addContainerProperty("Recall", Double.class, null); tableEvaluation.addContainerProperty("F-Score", Double.class, null); tab3Content.addComponent(tableEvaluation); this.buttonNext2 = new Button("Next"); buttonNext2.setImmediate(true); buttonNext2.setDescription("Get the next sentence in table"); tab3Content.addComponent(buttonNext2); this.textAreaEvalSentence = new TextArea("Sentence:"); textAreaEvalSentence.setImmediate(false); textAreaEvalSentence.setReadOnly(true); textAreaEvalSentence.setRows(3); textAreaEvalSentence.setWidth("100%"); tab3Content.addComponent(textAreaEvalSentence); HorizontalLayout hlay1 = new HorizontalLayout(); this.listSelectGoldstandard = new ListSelect("Goldstandard:"); listSelectGoldstandard.setImmediate(true); listSelectGoldstandard.setHeight("120px"); listSelectGoldstandard.setWidth("100%"); listSelectGoldstandard.setNullSelectionAllowed(false); this.listSelectFramework = new ListSelect("Framework:"); listSelectFramework.setImmediate(true); listSelectFramework.setHeight("120px"); listSelectFramework.setWidth("100%"); listSelectFramework.setNullSelectionAllowed(false); hlay1.setSpacing(true); hlay1.setMargin(false); hlay1.setWidth("100%"); hlay1.addComponent(listSelectGoldstandard); hlay1.addComponent(listSelectFramework); tab3Content.addComponent(hlay1); return tab3Content; }
/** * Build content 'annotation process' of tab 2. * * @return content of second tab */ private Layout buildTab2Content() { VerticalLayout tab2Content = new VerticalLayout(); tab2Content.setSpacing(true); tab2Content.setMargin(true); tab2Content.setSizeFull(); this.textAreaSentence = new TextArea("Sentence:"); textAreaSentence.setImmediate(true); textAreaSentence.setRows(7); textAreaSentence.setWidth("100%"); tab2Content.addComponent(textAreaSentence); HorizontalLayout hlay1 = new HorizontalLayout(); this.buttonNew = new Button("New"); buttonNew.setImmediate(true); buttonNew.setDescription("Type in new sentences"); this.buttonAnnotate = new Button("Annotate"); buttonAnnotate.setImmediate(true); buttonAnnotate.setDescription("Annotate the sentences above"); hlay1.setSpacing(true); hlay1.setMargin(false); hlay1.addComponent(buttonNew); hlay1.addComponent(buttonAnnotate); tab2Content.addComponent(hlay1); this.listSelectAnnotation = new ListSelect("Annotations:"); listSelectAnnotation.setImmediate(true); listSelectAnnotation.setHeight("150px"); listSelectAnnotation.setWidth("100%"); listSelectAnnotation.setNullSelectionAllowed(false); tab2Content.addComponent(listSelectAnnotation); this.textAreaAnnotation = new TextArea("Further annotations with other surface forms:"); textAreaAnnotation.setImmediate(false); textAreaAnnotation.setRows(4); textAreaAnnotation.setReadOnly(true); textAreaAnnotation.setWidth("100%"); tab2Content.addComponent(textAreaAnnotation); // this.buttonNext = new Button("Next"); // buttonNext.setImmediate(true); // buttonNext.setDescription("Get next annotation"); // tab2Content.addComponent(buttonNext); return tab2Content; }
private Panel designMainPanel() { // positioning indices final int leftStart = 450, topStart = 10, space = 100; // create the panel that will hold all components Panel pnlURIsProperties = new Panel("URI Display"); pnlURIsProperties.setWidth("100%"); pnlURIsProperties.setHeight("100%"); // Create absolute layout specifying its properties final AbsoluteLayout layout = new AbsoluteLayout(); layout.setWidth("100%"); layout.setHeight("100%"); layout.setSizeFull(); // Create components Objects and specify their properties Button btnCorrect = new Button("Correct"); Button btnIncorrect = new Button("Incorrect"); Button btnUnsure = new Button("Unsure"); Button btnGetProperties = new Button("Get properties"); final NativeSelect cmbSourceEndpoint = new NativeSelect("Source Endpoint"); final NativeSelect cmbDestinationEndpoint = new NativeSelect("Destination Endpoint"); final ListSelect lstSuggestedProperties = new ListSelect("Lookup Properties"); // to load properties of loaded resources automatically final CheckBox chkAutomaticPropertiesLoad = new CheckBox("Automatic Properties loading (next time)"); chkAutomaticPropertiesLoad.setValue(false); cmbSourceEndpoint.setNullSelectionAllowed(false); cmbDestinationEndpoint.setNullSelectionAllowed(false); lstSuggestedProperties.setRows(4); lstSuggestedProperties.setNullSelectionAllowed(false); source = new Label("Source URI"); destination = new Label("Destination URI"); final Table tblSourcePropertiesMapping = new Table("Source Properties"); final Table tblDestinationPropertiesMapping = new Table("Destination Properties"); tblSourcePropertiesParam = tblSourcePropertiesMapping; tblDestinationPropertiesParam = tblDestinationPropertiesMapping; tblSourcePropertiesMapping.setWidth("50%"); tblDestinationPropertiesMapping.setWidth("100%"); tblSourcePropertiesMapping.setSelectable(true); tblDestinationPropertiesMapping.setSelectable(true); /* Define the names and data types of columns. * The "default value" parameter is meaningless here. */ tblSourcePropertiesMapping.addContainerProperty("Property", String.class, null); tblSourcePropertiesMapping.addContainerProperty("Value", String.class, null); tblDestinationPropertiesMapping.addContainerProperty("Property", String.class, null); tblDestinationPropertiesMapping.addContainerProperty("Value", String.class, null); tblDestinationPropertiesMapping.setMultiSelect(true); /// get data for comboboxes SQLContainer cmbContainer = connectToDB("root", "mofo", "Endpoints"); // fill endpoints cmbSourceEndpoint.setContainerDataSource(cmbContainer); cmbDestinationEndpoint.setContainerDataSource(cmbContainer); cmbSourceEndpoint.setValue(cmbSourceEndpoint.getItemIds().iterator().next()); cmbDestinationEndpoint.setValue(cmbDestinationEndpoint.getItemIds().iterator().next()); SQLContainer lstContainer = getSuggestedProperties("root", "mofo"); int lstSize = lstContainer.size(); int i = 0; for (Object cityItemId : lstContainer.getItemIds()) { lstSuggestedProperties.addItem(i); String g = lstContainer.getItem(cityItemId).getItemProperty("property").getValue().toString(); lstSuggestedProperties.setItemCaption(i, g); i++; } lstSuggestedProperties.setValue(lstSuggestedProperties.getItemIds().iterator().next()); btnCorrect.addClickListener( new Button.ClickListener() { @Override public void buttonClick(ClickEvent event) { try { Object rowId = tblSourceDestinationparam.getValue(); Item myitem = tblSourceDestinationparam.getItem(tblSourceDestinationparam.getValue()); lEndTime = System.currentTimeMillis(); long lEllapsedTime = lEndTime - lStartTime; tblSourceDestinationparam.setEditable(true); tblSourceDestinationparam.getContainerProperty(rowId, "decision").setValue("Correct"); tblSourceDestinationparam .getContainerProperty(rowId, "time") .setValue(String.valueOf(lEllapsedTime)); tblSourceDestinationparam.setEditable(false); SQLContainer c = (SQLContainer) tblSourceDestinationparam.getContainerDataSource(); try { c.commit(); } catch (UnsupportedOperationException | SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } int maxindex = tblSourceDestination.size(); SQLContainer s = (SQLContainer) tblSourceDestination.getContainerDataSource(); // Item x=s.getItem(tblSourceDestination.getValue()); if (!(tblSourceDestination.getValue().equals(tblSourceDestination.lastItemId()))) { int index = s.indexOfId(tblSourceDestination.getValue()); index++; tblSourceDestination.setValue(s.getIdByIndex(index)); try { Object rowId2 = tblSourceDestination.getValue(); Property sourceProperty = tblSourceDestination.getContainerProperty(rowId2, "sourceURI"); Property destinationProperty = tblSourceDestination.getContainerProperty(rowId2, "destinationURI"); source.setValue(sourceProperty.toString()); destination.setValue(destinationProperty.toString()); tblSourcePropertiesParam.removeAllItems(); tblDestinationPropertiesParam.removeAllItems(); Notification loadURI = new Notification(""); loadURI.show("Links' URIs are successfully loaded "); if (chkAutomaticPropertiesLoad.getValue()) // the automatic buton i schecked { // load the properties automatically String sourceEndpoint = "", destinationEndpoint = ""; sourceEndpoint = cmbSourceEndpoint.getItemCaption(cmbSourceEndpoint.getValue()); destinationEndpoint = cmbDestinationEndpoint.getItemCaption(cmbDestinationEndpoint.getValue()); try { String sparqlQuery = source.getValue(); getURIProperties(sparqlQuery, sourceEndpoint, tblSourcePropertiesMapping); sparqlQuery = destination.getValue(); getURIProperties( sparqlQuery, destinationEndpoint, tblDestinationPropertiesMapping); } catch (Exception e) { Notification.show("ERROR"); } lStartTime = System.currentTimeMillis(); // start time for next one } } catch (Exception e) { Notification error = new Notification("Error"); error.show("You did not select an item in the links table"); } } } catch (Exception e) { Notification.show(e.getMessage()); } /////////////////////////////////// } }); btnIncorrect.addClickListener( new Button.ClickListener() { @Override public void buttonClick(ClickEvent event) { try { Object rowId = tblSourceDestinationparam.getValue(); Item myitem = tblSourceDestinationparam.getItem(tblSourceDestinationparam.getValue()); lEndTime = System.currentTimeMillis(); long lEllapsedTime = lEndTime - lStartTime; tblSourceDestinationparam.setEditable(true); tblSourceDestinationparam .getContainerProperty(rowId, "decision") .setValue("Incorrect"); tblSourceDestinationparam .getContainerProperty(rowId, "time") .setValue(String.valueOf(lEllapsedTime)); tblSourceDestinationparam.setEditable(false); SQLContainer c = (SQLContainer) tblSourceDestinationparam.getContainerDataSource(); try { c.commit(); } catch (UnsupportedOperationException | SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } int maxindex = tblSourceDestination.size(); SQLContainer s = (SQLContainer) tblSourceDestination.getContainerDataSource(); // Item x=s.getItem(tblSourceDestination.getValue()); if (!(tblSourceDestination.getValue().equals(tblSourceDestination.lastItemId()))) { int index = s.indexOfId(tblSourceDestination.getValue()); index++; tblSourceDestination.setValue(s.getIdByIndex(index)); try { Object rowId2 = tblSourceDestination.getValue(); Property sourceProperty = tblSourceDestination.getContainerProperty(rowId2, "sourceURI"); Property destinationProperty = tblSourceDestination.getContainerProperty(rowId2, "destinationURI"); source.setValue(sourceProperty.toString()); destination.setValue(destinationProperty.toString()); tblSourcePropertiesParam.removeAllItems(); tblDestinationPropertiesParam.removeAllItems(); Notification loadURI = new Notification(""); loadURI.show("Links' URIs are successfully loaded "); if (chkAutomaticPropertiesLoad.getValue()) // the automatic buton i schecked { // load the properties automatically String sourceEndpoint = "", destinationEndpoint = ""; sourceEndpoint = cmbSourceEndpoint.getItemCaption(cmbSourceEndpoint.getValue()); destinationEndpoint = cmbDestinationEndpoint.getItemCaption(cmbDestinationEndpoint.getValue()); try { String sparqlQuery = source.getValue(); getURIProperties(sparqlQuery, sourceEndpoint, tblSourcePropertiesMapping); sparqlQuery = destination.getValue(); getURIProperties( sparqlQuery, destinationEndpoint, tblDestinationPropertiesMapping); } catch (Exception e) { Notification.show("ERROR Not Properties queried"); } lStartTime = System.currentTimeMillis(); // start time for next one } } catch (Exception e) { Notification error = new Notification("Error"); error.show("You did not select an item in the links table"); } } } catch (Exception e) { Notification.show(e.getMessage()); } /////////////////////////////////// } }); btnUnsure.addClickListener( new Button.ClickListener() { @Override public void buttonClick(ClickEvent event) { try { Object rowId = tblSourceDestinationparam.getValue(); Item myitem = tblSourceDestinationparam.getItem(tblSourceDestinationparam.getValue()); lEndTime = System.currentTimeMillis(); float lEllapsedTime = lEndTime - lStartTime; String elapsedTime = String.valueOf(lEllapsedTime); tblSourceDestinationparam.setEditable(true); tblSourceDestinationparam.getContainerProperty(rowId, "decision").setValue("Unsure"); tblSourceDestinationparam.getContainerProperty(rowId, "time").setValue(elapsedTime); tblSourceDestinationparam.setEditable(false); SQLContainer c = (SQLContainer) tblSourceDestinationparam.getContainerDataSource(); try { c.commit(); } catch (UnsupportedOperationException | SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } // int selectedId=Integer.parseInt(tblSourceDestination.getValue().toString()); int maxindex = tblSourceDestination.size(); SQLContainer s = (SQLContainer) tblSourceDestination.getContainerDataSource(); // Item x=s.getItem(tblSourceDestination.getValue()); if (!(tblSourceDestination.getValue().equals(tblSourceDestination.lastItemId()))) { int index = s.indexOfId(tblSourceDestination.getValue()); index++; tblSourceDestination.setValue(s.getIdByIndex(index)); try { Object rowId2 = tblSourceDestination.getValue(); Property sourceProperty = tblSourceDestination.getContainerProperty(rowId2, "sourceURI"); Property destinationProperty = tblSourceDestination.getContainerProperty(rowId2, "destinationURI"); source.setValue(sourceProperty.toString()); destination.setValue(destinationProperty.toString()); tblSourcePropertiesParam.removeAllItems(); tblDestinationPropertiesParam.removeAllItems(); Notification loadURI = new Notification(""); loadURI.show("Links' URIs are successfully loaded "); if (chkAutomaticPropertiesLoad.getValue()) // the automatic buton i schecked { // load the properties automatically String sourceEndpoint = "", destinationEndpoint = ""; sourceEndpoint = cmbSourceEndpoint.getItemCaption(cmbSourceEndpoint.getValue()); destinationEndpoint = cmbDestinationEndpoint.getItemCaption(cmbDestinationEndpoint.getValue()); try { String sparqlQuery = source.getValue(); getURIProperties(sparqlQuery, sourceEndpoint, tblSourcePropertiesMapping); sparqlQuery = destination.getValue(); getURIProperties( sparqlQuery, destinationEndpoint, tblDestinationPropertiesMapping); } catch (Exception e) { Notification.show("ERROR Not Properties queried"); } lStartTime = System.currentTimeMillis(); // start time for next one } } catch (Exception e) { Notification error = new Notification("Error"); error.show("You did not select an item in the links table"); } } } catch (Exception e) { Notification.show(e.getMessage()); } } }); btnGetProperties.addClickListener( new Button.ClickListener() { @Override public void buttonClick(ClickEvent event) { String sourceEndpoint = "", destinationEndpoint = ""; sourceEndpoint = cmbSourceEndpoint.getItemCaption(cmbSourceEndpoint.getValue()); destinationEndpoint = cmbDestinationEndpoint.getItemCaption(cmbDestinationEndpoint.getValue()); lStartTime = System.currentTimeMillis(); try { String sparqlQuery = source.getValue(); getURIProperties(sparqlQuery, sourceEndpoint, tblSourcePropertiesMapping); sparqlQuery = destination.getValue(); getURIProperties(sparqlQuery, destinationEndpoint, tblDestinationPropertiesMapping); } catch (Exception e) { Notification.show( "ERROR while sparqling the endpoint for resources' properties (Are they selected/loaded ?)"); } // cachingForTriples(tblSourceDestination, sourceEndpoint); } }); lstSuggestedProperties.addValueChangeListener( new ValueChangeListener() { @Override public void valueChange(final ValueChangeEvent event) { final String valueString = String.valueOf(event.getProperty().getValue()); // Notification.show(valueString); List<Object> Ids = new ArrayList<Object>(); Object first = null; for (Iterator i = tblSourcePropertiesMapping.getItemIds().iterator(); i.hasNext(); ) { // Get the current item identifier, which is an integer. first = i.next(); int iid = (Integer) first; String other = tblSourcePropertiesMapping.getItem(iid).getItemProperty("Property").toString(); // Notification.show(other); if (other.equals(valueString)) // if(other.equals(property)) { Ids.add(iid); break; } } tblSourcePropertiesMapping.setImmediate(true); tblSourcePropertiesMapping.setValue(Ids); tblDestinationPropertiesMapping.setCurrentPageFirstItemId(first); } }); tblSourcePropertiesMapping.addItemClickListener( new ItemClickEvent.ItemClickListener() { @Override public void itemClick(ItemClickEvent event) { String property = tblSourcePropertiesMapping .getContainerProperty(event.getItemId(), event.getPropertyId()) .toString(); List<String> res = getRelatedProperties(property); if (res == null) { Notification.show("No related Properties"); return; } boolean Found = false; List<Object> Ids = new ArrayList<Object>(); Object first = null; int x = 0; for (String relatedProperty : res) { for (Iterator i = tblDestinationPropertiesMapping.getItemIds().iterator(); i.hasNext(); ) { // Get the current item identifier, which is an integer. Object theId = i.next(); int iid = (Integer) theId; String other = tblDestinationPropertiesMapping .getItem(iid) .getItemProperty(event.getPropertyId()) .toString(); if (other.equals(relatedProperty)) // if(other.equals(property)) { Ids.add(iid); if (x == 0) { first = theId; x = 1; } Found = true; } } } if (!Found) Notification.show( "Related property is not Found in destination table try manual search"); else { Notification.show("Found in destination table"); tblDestinationPropertiesMapping.setValue(Ids); tblDestinationPropertiesMapping.setCurrentPageFirstItemId(first); } } }); // add component to the layout specifying its position on the layout layout.addComponent(btnCorrect, "left: " + leftStart + "px; top: " + (topStart + 450) + "px;"); layout.addComponent( btnIncorrect, "left: " + (leftStart + space) + "px; top: " + (topStart + 450) + "px;"); layout.addComponent( btnUnsure, "left: " + (leftStart + 2 * space) + "px; top: " + (topStart + 450) + "px;"); layout.addComponent( btnGetProperties, "left: " + (leftStart + 3 * space + 50) + "px; top: " + (topStart + 450) + "px;"); layout.addComponent( chkAutomaticPropertiesLoad, "left: " + (leftStart + 3 * space + 250) + "px; top: " + (topStart + 450) + "px;"); /*layout.addComponent(sourceURI,"left: "+(leftStart-space/2)+"px; top: "+(topStart+space/2)+"px;"); layout.addComponent(destinationURI,"left: "+(leftStart+2*space)+"px; top: "+(topStart+space/2)+"px;");*/ layout.addComponent(source, "left: 30px; top: " + (topStart + space / 2) + "px;"); layout.addComponent( destination, "left: " + (leftStart + 3 * space + 200) + "px; top: " + (topStart + space / 2) + "px;"); layout.addComponent(cmbSourceEndpoint, "left: 50px; top: " + (topStart + 20) + "px;"); layout.addComponent( cmbDestinationEndpoint, "left: " + (leftStart + 3 * space + 200) + "px; top: " + (topStart + 20) + "px;"); layout.addComponent( lstSuggestedProperties, "left: " + (leftStart + 100) + "px; top: " + (topStart + 20) + "px;"); layout.addComponent( tblSourcePropertiesMapping, "left: 10px; top: " + (topStart + space) + "px;"); layout.addComponent( tblDestinationPropertiesMapping, "left: " + (leftStart + 3 * space + 200) + "px; top: " + (topStart + space) + "px;"); pnlURIsProperties.setContent(layout); return pnlURIsProperties; }
private DataBinder<MarathonData> showOverviewData(final FormLayout layout) { layout.setMargin(true); final BeanFieldGroup<MarathonData> binder = new BeanFieldGroup<MarathonData>(MarathonData.class); layout.addComponent(binder.buildAndBind("Veranstaltung", "marathonName")); final BeanItemContainer<String> categoryListContainer = new BeanItemContainer<String>(String.class); final ListSelect categoryListSelect = new ListSelect("Kategorieen", categoryListContainer); categoryListSelect.setNewItemsAllowed(true); categoryListSelect.setNullSelectionAllowed(false); categoryListSelect.setMultiSelect(false); layout.addComponent(categoryListSelect); final Button removeItemButton = new Button("Kategorie löschen"); layout.addComponent(removeItemButton); removeItemButton.addClickListener( new ClickListener() { @Override public void buttonClick(final ClickEvent event) { categoryListContainer.removeItem(categoryListSelect.getValue()); } }); // final ListSelect categoryList = new ListSelect("Kategorieen"); // layout.addComponent(categoryList); final BeanItemContainer<DriverData> driverContainer = new BeanItemContainer<DriverData>(DriverData.class); final Table table = new Table("Fahrer"); table.setContainerDataSource(driverContainer); table.removeContainerProperty("smallSheets"); table.removeContainerProperty("startTimes"); table.removeContainerProperty("category"); table.addGeneratedColumn( "Kategorie", new ColumnGenerator() { @Override public Object generateCell( final Table source, final Object itemId, final Object columnId) { final ComboBox comboBox = new ComboBox(); comboBox.setContainerDataSource(categoryListContainer); final DriverData driverData = (DriverData) itemId; final String category = driverData.getCategory() == null ? "" : driverData.getCategory(); final ObjectProperty<String> property = new ObjectProperty<String>(category); comboBox.setPropertyDataSource(property); property.addValueChangeListener( new ValueChangeListener() { @Override public void valueChange(final ValueChangeEvent event) { driverData.setCategory(property.getValue()); } }); return comboBox; } }); table.addGeneratedColumn( "Generieren", new ColumnGenerator() { @Override public Object generateCell( final Table source, final Object itemId, final Object columnId) { final DriverData driverData = (DriverData) itemId; final Button button = new Button("PDF"); button.addClickListener( new ClickListener() { @Override public void buttonClick(final ClickEvent event) { // showPdfHandler.showPdf(driverData.getName()); } }); return button; } }); table.addGeneratedColumn("Phase A Zettel", createPhaseCheckbox(Phase.A)); table.addGeneratedColumn("Phase D Zettel", createPhaseCheckbox(Phase.D)); table.addGeneratedColumn("Phase E Zettel", createPhaseCheckbox(Phase.E)); final DurationFieldFactory fieldFactory = new DurationFieldFactory(); table.addGeneratedColumn("Phase A Start", createPhaseStartInput(fieldFactory, Phase.A)); table.addGeneratedColumn("Phase D Start", createPhaseStartInput(fieldFactory, Phase.D)); table.addGeneratedColumn("Phase E Start", createPhaseStartInput(fieldFactory, Phase.E)); table.addGeneratedColumn( "Fahrer Löschen", new ColumnGenerator() { @Override public Object generateCell( final Table source, final Object itemId, final Object columnId) { final Button button = new Button("-"); button.addClickListener( new ClickListener() { @Override public void buttonClick(final ClickEvent event) { driverContainer.removeItem(itemId); } }); return button; } }); table.setEditable(true); table.setSortEnabled(false); // table.setNullSelectionAllowed(true); layout.addComponent(table); final Button addDriverButton = new Button("Neuer Fahrer"); addDriverButton.addClickListener( new ClickListener() { @Override public void buttonClick(final ClickEvent event) { final DriverData driver = new DriverData(); driver.setName("Fahrer - " + driverContainer.size()); driverContainer.addBean(driver); } }); layout.addComponent(addDriverButton); return new DataBinder<MarathonData>() { private MarathonData data; @Override public void bindData(final MarathonData data) { this.data = data; binder.setItemDataSource(data); categoryListContainer.removeAllItems(); for (final String category : data.getCategories()) { categoryListContainer.addBean(category); } driverContainer.removeAllItems(); for (final DriverData driver : data.getDrivers().values()) { driverContainer.addBean(driver); } } @Override public void commitHandler() { try { binder.commit(); final List<String> categories = data.getCategories(); categories.clear(); categories.addAll(categoryListContainer.getItemIds()); final Map<String, DriverData> drivers = data.getDrivers(); drivers.clear(); for (final DriverData driver : driverContainer.getItemIds()) { drivers.put(driver.getName(), driver); } } catch (final CommitException e) { throw new RuntimeException("Cannot commit", e); } } @Override public MarathonData getCurrentData() { return data; } }; }
public PaymentTypeMgmt(BalanceSheet sheet) { super(AccountsMessages.BAL_SHEET_NEW_PAY_TYPE); this.balSheet = sheet; setWidth("320px"); setIcon(IconManager.getIcon(IconManager.CATG_MGMT_SM)); accordion = new Accordion(); accordion.setSizeFull(); HorizontalLayout hl = new HorizontalLayout(); hl.setSpacing(true); VerticalLayout vl1 = new VerticalLayout(); vl1.setSpacing(true); paymentCategories = new ListSelect(STRINGS.getString(AccountsMessages.BAL_SHEET_PAYMENT_CATEGORY)); populatePaymentCategories(); paymentCategories.setNullSelectionAllowed(false); paymentCategories.setImmediate(true); paymentCategories.setRows(NUM_ROWS); paymentCategories.addListener(this); Set<String> keys = categories.keySet(); if (keys.size() > 0) paymentCategories.select(keys.iterator().next()); vl1.addComponent(paymentCategories); hl.addComponent(vl1); VerticalLayout vl2 = new VerticalLayout(); vl2.setSpacing(true); paymentTypes = new ListSelect(STRINGS.getString(AccountsMessages.BAL_SHEET_PAYMENT_TYPE)); populatePaymentTypes(categories.get(paymentCategories.getValue())); paymentTypes.setNullSelectionAllowed(false); paymentTypes.setImmediate(true); paymentTypes.setRows(NUM_ROWS); vl2.addComponent(paymentTypes); hl.addComponent(vl2); current = accordion.addTab(hl); current.setCaption(STRINGS.getString(AccountsMessages.CURRENT)); addNewCategory = accordion.addTab(generateCreateNewCategoryForm()); addNewCategory.setCaption( STRINGS.getString(AccountsMessages.ADD_NEW) + " " + STRINGS.getString(AccountsMessages.BAL_SHEET_PAYMENT_CATEGORY)); addNewType = accordion.addTab(generateCreateNewTypeForm()); addNewType.setCaption( STRINGS.getString(AccountsMessages.ADD_NEW) + " " + STRINGS.getString(AccountsMessages.BAL_SHEET_PAYMENT_TYPE)); addComponent(accordion); }