private Multimap<String, Review> buildReviews(PropertyFileDescriptor descriptor) { Multimap<String, Review> map = ArrayListMultimap.create(); if (descriptor == null) return map; EList<Review> reviews = descriptor.getReviews(); for (Review review : reviews) { map.put(review.getKey(), review); } return map; }
@Override public String getTrailCaption() { return descriptor.getLocation().lastSegment(); }
protected Component createMainArea() { layout = new VerticalLayout(); layout.setSpacing(true); layout.setMargin(true); layout.setSizeFull(); HorizontalLayout filterLine = new HorizontalLayout(); TextField filterBox = new TextField(); filterBox.addStyleName(JabylonStyle.SEARCH_FIELD.getCSSName()); filterBox.addListener( new TextChangeListener() { @Override public void textChange(TextChangeEvent event) { propertyFilter.setFilterText(event.getText()); propertyPairContainer.addContainerFilter(propertyFilter); } }); filterBox.setInputPrompt( Messages.getString("PropertiesEditor_FILTER_INPUT_PROMPT")); // $NON-NLS-1$ filterLine.addComponent(filterBox); final CheckBox untranslatedBox = new CheckBox( Messages.getString( "PropertiesEditor_SHOW_ONLY_UNTRANSLATED_BUTTON_CAPTION")); //$NON-NLS-1$ untranslatedBox.addListener( new ClickListener() { @Override public void buttonClick(ClickEvent event) { propertyPairContainer.removeContainerFilter(untranslatedFilter); if (untranslatedBox.getValue().equals(Boolean.TRUE)) propertyPairContainer.addContainerFilter(untranslatedFilter); } }); untranslatedBox.setImmediate(true); filterLine.addComponent(untranslatedBox); layout.addComponent(filterLine); layout.setExpandRatio(filterLine, 0); table = new Table(); table.addStyleName(JabylonStyle.TABLE_STRIPED.getCSSName()); table.setSizeFull(); target = descriptor.loadProperties(); source = descriptor.getMaster().loadProperties(); propertyPairContainer = new PropertyPairContainer(source, target); table.setContainerDataSource(propertyPairContainer); table.setVisibleColumns( propertyPairContainer.getContainerPropertyIds().subList(0, 2).toArray()); table.setWidth(100, Table.UNITS_PERCENTAGE); table.addGeneratedColumn( Messages.getString("PropertiesEditor_PROBLEMS_COLUMN_HEADER"), new ColumnGenerator() { //$NON-NLS-1$ @Override public Object generateCell(Table source, Object itemId, Object columnId) { if (reviews.containsKey(itemId)) { Embedded embedded = new Embedded("", ImageConstants.IMAGE_ERROR); // $NON-NLS-1$ Review review = reviews.get((String) itemId).iterator().next(); // TODO: this can't be the right way to refresh? if (review.cdoInvalid()) { reviews.remove(itemId, review); // the review is // no // longer valid embedded.setIcon(ImageConstants.IMAGE_OK); embedded.setDescription(""); // $NON-NLS-1$ } else { embedded.setDescription(review.getMessage()); } return embedded; } else return new Embedded("", ImageConstants.IMAGE_OK); // $NON-NLS-1$ } }); table.setColumnHeaderMode(Table.COLUMN_HEADER_MODE_EXPLICIT); table.setColumnHeaders( new String[] { Messages.getString("PropertiesEditor_ORIGINAL_COLUMN_HEADER"), Messages.getString("PropertiesEditor_TRANSLATED_COLUMN_HEADER"), Messages.getString("PropertiesEditor_PROBLEMS_COLUMN_HEADER") }); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ table.setColumnExpandRatio(propertyPairContainer.getContainerPropertyIds().get(0), 1.0f); table.setColumnExpandRatio(propertyPairContainer.getContainerPropertyIds().get(1), 1.0f); table.setColumnExpandRatio( Messages.getString("PropertiesEditor_PROBLEMS_COLUMN_HEADER"), 0.0f); // $NON-NLS-1$ table.setEditable(false); table.setWriteThrough(false); table.setSelectable(true); table.setMultiSelect(false); table.setImmediate(true); // react at once when something is selected table.addListener(this); layout.addComponent(table); layout.setExpandRatio(table, 2); createEditorArea(); return layout; }
@Override public CrumbTrail walkTo(String path) { if (path.equals("?master")) // $NON-NLS-1$ return new PropertiesMasterEditor(descriptor.getMaster()); return null; }
private PropertyToolArea createToolArea() { PropertyToolArea toolArea = new PropertyToolArea(); toolArea.init(descriptor.getMaster(), descriptor); return toolArea; }