List of usage examples for com.google.gwt.user.client.ui Label addClickHandler
public HandlerRegistration addClickHandler(ClickHandler handler)
From source file:org.sigmah.client.ui.view.project.logframe.grid.IndicatorListWidget.java
License:Open Source License
public IndicatorListWidget(EventBus eventBus, final int databaseId, final LogFrameElementDTO element) { this.eventBus = eventBus; this.databaseId = databaseId; this.element = element; table = new FlexTable(); table.setWidth("100%"); table.setStyleName("log-frame-indicators-table"); updateTable();/*from w w w .j a va2 s. com*/ final Label newIndicatorLink = new Label(I18N.CONSTANTS.newIndicator()); newIndicatorLink.addStyleName(CLICKABLE_STYLE); newIndicatorLink.addClickHandler(new ClickHandler() { @Override public void onClick(ClickEvent event) { showNewIndicatorForm(); } }); final Grid grid = new Grid(2, 1); grid.setCellSpacing(0); grid.setWidget(0, 0, table); grid.setWidget(1, 0, newIndicatorLink); initWidget(grid); eventBus.addHandler(UpdateEvent.getType(), new UpdateHandler() { @Override public void onUpdate(UpdateEvent event) { if (event.concern(UpdateEvent.INDICATOR_UPDATED)) { onIndicatorUpdatedExternally((Integer) event.getParam(0), (Map<String, Object>) event.getParam(1)); } else if (event.concern(UpdateEvent.INDICATOR_REMOVED)) { onIndicatorDeletedExternally((Integer) event.getParam(0)); } } }); }
From source file:org.sigmah.client.ui.view.project.logframe.grid.IndicatorListWidget.java
License:Open Source License
private void updateRow(final int rowIndex, final IndicatorDTO indicator) { final Label label = new Label(indicator.getName()); label.addClickHandler(new ClickHandler() { @Override//from w w w. ja va 2 s .co m public void onClick(ClickEvent event) { onIndicatorClicked(rowIndex, indicator); } }); label.addMouseOverHandler(new MouseOverHandler() { @Override public void onMouseOver(MouseOverEvent event) { label.addStyleName(CLICKABLE_STYLE); } }); label.addMouseOutHandler(new MouseOutHandler() { @Override public void onMouseOut(MouseOutEvent event) { label.removeStyleName(CLICKABLE_STYLE); } }); table.setWidget(rowIndex, 0, label); table.getFlexCellFormatter().setStyleName(rowIndex, 0, "log-frame-indicators-table-cell"); table.setHTML(rowIndex, 1, indicator.getSourceOfVerification()); table.getFlexCellFormatter().setStyleName(rowIndex, 1, "log-frame-indicators-table-cell"); }
From source file:org.sigmah.client.ui.view.project.logframe.ProjectLogFrameGrid.java
License:Open Source License
/** * Initializes table content.// www . j a v a2s . c om */ protected void initTable() { resetTable(); // Table parameters. table.setCellPadding(0); table.setCellSpacing(0); // Columns sizes. table.getColumnFormatter().setWidth(0, "100px"); table.getColumnFormatter().setWidth(1, "50px"); table.getColumnFormatter().setWidth(2, "50px"); table.getColumnFormatter().setWidth(3, "22%"); table.getColumnFormatter().setWidth(4, "18%"); table.getColumnFormatter().setWidth(5, "18%"); table.getColumnFormatter().setWidth(6, "22%"); // Columns headers labels. final Label interventionLogicLabel = new Label(I18N.CONSTANTS.logFrameInterventionLogic()); final Label indicatorsLabel = new Label(I18N.CONSTANTS.indicators()); final Label meansOfVerificationLabel = new Label(I18N.CONSTANTS.logFrameMeansOfVerification()); final Label risksAndAssumptionsLabel = new Label(I18N.CONSTANTS.logFrameRisksAndAssumptions()); table.getFlexCellFormatter().setColSpan(0, 1, 2); table.setWidget(0, 2, interventionLogicLabel); table.setWidget(0, 3, indicatorsLabel); table.setWidget(0, 4, meansOfVerificationLabel); table.setWidget(0, 5, risksAndAssumptionsLabel); // Rows headers labels (and actions). // Specific objectives. final Label specificObjectivesLabel = new Label(I18N.CONSTANTS.logFrameSpecificObjectives() + " (" + I18N.CONSTANTS.logFrameSpecificObjectivesCode() + ")"); final Label specificObjectivesButton = new Label(I18N.CONSTANTS.logFrameAddRow()); specificObjectivesButton.addStyleName(CSS_ADD_ACTION_STYLE_NAME); specificObjectivesButton.setTitle(I18N.CONSTANTS.logFrameAddOS()); specificObjectivesButton.addClickHandler(new ClickHandler() { @Override public void onClick(ClickEvent e) { addSpecificObjective(); } }); final Label specificObjectivesGroupsButton = new Label(I18N.CONSTANTS.logFrameAddGroup()); specificObjectivesGroupsButton.addStyleName(CSS_ADD_GROUP_ACTION_STYLE_NAME); specificObjectivesGroupsButton.addClickHandler(new ClickHandler() { @Override public void onClick(ClickEvent e) { addSpecificObjectivesGroup(); } }); // Are groups enabled ? if (!logFrameModel.getEnableSpecificObjectivesGroups()) { specificObjectivesGroupsButton.setVisible(false); } final Grid specificObjectivesGrid = new Grid(3, 1); specificObjectivesGrid.setWidth("100%"); specificObjectivesGrid.setCellPadding(0); specificObjectivesGrid.setCellSpacing(0); specificObjectivesGrid.setWidget(0, 0, specificObjectivesLabel); if (!readOnly) { specificObjectivesGrid.setWidget(1, 0, specificObjectivesButton); specificObjectivesGrid.setWidget(2, 0, specificObjectivesGroupsButton); } // Expected results. final Label exceptedResultsLabel = new Label(I18N.CONSTANTS.logFrameExceptedResults() + " (" + I18N.CONSTANTS.logFrameExceptedResultsCode() + ")"); final Label expectedResultsButton = new Label(I18N.CONSTANTS.logFrameAddRow()); expectedResultsButton.addStyleName(CSS_ADD_ACTION_STYLE_NAME); expectedResultsButton.setTitle(I18N.CONSTANTS.logFrameAddER()); expectedResultsButton.addClickHandler(new ClickHandler() { @Override public void onClick(ClickEvent e) { addExpectedResult(); } }); final Label expectedResultsGroupsButton = new Label(I18N.CONSTANTS.logFrameAddGroup()); expectedResultsGroupsButton.addStyleName(CSS_ADD_GROUP_ACTION_STYLE_NAME); expectedResultsGroupsButton.addClickHandler(new ClickHandler() { @Override public void onClick(ClickEvent e) { addExpectedResultsGroup(); } }); // Are groups enabled ? if (!logFrameModel.getEnableExpectedResultsGroups()) { expectedResultsGroupsButton.setVisible(false); } final Grid exceptedResultsGrid = new Grid(3, 1); exceptedResultsGrid.setWidth("100%"); exceptedResultsGrid.setCellPadding(0); exceptedResultsGrid.setCellSpacing(0); exceptedResultsGrid.setWidget(0, 0, exceptedResultsLabel); if (!readOnly) { exceptedResultsGrid.setWidget(1, 0, expectedResultsButton); exceptedResultsGrid.setWidget(2, 0, expectedResultsGroupsButton); } // Activities. final Label activitiesLabel = new Label(I18N.CONSTANTS.logFrameActivities()); final Label activitiesButton = new Label(I18N.CONSTANTS.logFrameAddRow()); activitiesButton.addStyleName(CSS_ADD_ACTION_STYLE_NAME); activitiesButton.setTitle(I18N.CONSTANTS.logFrameAddA()); activitiesButton.addClickHandler(new ClickHandler() { @Override public void onClick(ClickEvent e) { addActivity(); } }); final Label activitiesGroupsButton = new Label(I18N.CONSTANTS.logFrameAddGroup()); activitiesGroupsButton.addStyleName(CSS_ADD_GROUP_ACTION_STYLE_NAME); activitiesGroupsButton.addClickHandler(new ClickHandler() { @Override public void onClick(ClickEvent e) { addActivitiesGroup(); } }); // Are groups enabled ? if (!logFrameModel.getEnableActivitiesGroups()) { activitiesGroupsButton.setVisible(false); } final Grid activitiesGrid = new Grid(3, 1); activitiesGrid.setWidth("100%"); activitiesGrid.setCellPadding(0); activitiesGrid.setCellSpacing(0); activitiesGrid.setWidget(0, 0, activitiesLabel); if (!readOnly) { activitiesGrid.setWidget(1, 0, activitiesButton); activitiesGrid.setWidget(2, 0, activitiesGroupsButton); } // Prerequisites. final Label prerequisitesLabel = new Label(I18N.CONSTANTS.logFramePrerequisites()); final Label prerequisitesButton = new Label(I18N.CONSTANTS.logFrameAddRow()); prerequisitesButton.addStyleName(CSS_ADD_ACTION_STYLE_NAME); prerequisitesButton.setTitle(I18N.CONSTANTS.logFrameAddP()); prerequisitesButton.addClickHandler(new ClickHandler() { @Override public void onClick(ClickEvent e) { addPrerequisite(); } }); final Label prerequisitesGroupButton = new Label(I18N.CONSTANTS.logFrameAddGroup()); prerequisitesGroupButton.addStyleName(CSS_ADD_GROUP_ACTION_STYLE_NAME); prerequisitesGroupButton.addClickHandler(new ClickHandler() { @Override public void onClick(ClickEvent e) { addPrerequisitesGroup(); } }); // Are groups enabled ? if (!logFrameModel.getEnablePrerequisitesGroups()) { prerequisitesGroupButton.setVisible(false); } final Grid prerequisitesGrid = new Grid(3, 1); prerequisitesGrid.setWidth("100%"); prerequisitesGrid.setCellPadding(0); prerequisitesGrid.setCellSpacing(0); prerequisitesGrid.setWidget(0, 0, prerequisitesLabel); if (!readOnly) { prerequisitesGrid.setWidget(1, 0, prerequisitesButton); prerequisitesGrid.setWidget(2, 0, prerequisitesGroupButton); } table.setWidget(1, 0, specificObjectivesGrid); table.setWidget(2, 0, exceptedResultsGrid); table.setWidget(3, 0, activitiesGrid); table.setWidget(4, 0, prerequisitesGrid); // Header styles. HTMLTableUtils.applyHeaderStyles(table, true); // Initializes grid views. columnsCount = 7; specificObjectivesView = new FlexTableView(table, columnsCount, 1); expectedResultsView = new FlexTableView(table, columnsCount, 2); activitiesView = new FlexTableView(table, columnsCount, 3); prerequisitesView = new FlexTableView(table, columnsCount, 4); specificObjectivesView.addDependency(expectedResultsView); specificObjectivesView.addDependency(activitiesView); specificObjectivesView.addDependency(prerequisitesView); expectedResultsView.addDependency(activitiesView); expectedResultsView.addDependency(prerequisitesView); activitiesView.addDependency(prerequisitesView); // Views listeners. specificObjectivesView.addFlexTableViewListener(new FlexTableViewListener() { @Override public void rowRemoved(RowsGroup<?> group, Row<?> row) { // Checks if the max number of elements is reached. final Integer max = logFrameModel.getSpecificObjectivesMax(); if (max != null && max > 0 && max > specificObjectivesView.getRowsCount()) { specificObjectivesButton.setVisible(true); } } @Override public void rowAdded(RowsGroup<?> group, Row<?> row) { // Checks if the max number of elements is reached. final Integer max = logFrameModel.getSpecificObjectivesMax(); if (max != null && max > 0 && max <= specificObjectivesView.getRowsCount()) { specificObjectivesButton.setVisible(false); } } @Override public void groupAdded(RowsGroup<?> group) { // Checks if the max number of groups is reached. final Integer max = logFrameModel.getSpecificObjectivesGroupsMax(); if (max != null && max > 1 && max <= specificObjectivesView.getGroupsCount()) { specificObjectivesGroupsButton.setVisible(false); } } }); expectedResultsView.addFlexTableViewListener(new FlexTableViewListener() { @Override public void rowRemoved(RowsGroup<?> group, Row<?> row) { // Checks if the max number of elements is reached. final Integer max = logFrameModel.getExpectedResultsMax(); if (max != null && max > 0 && max > expectedResultsView.getRowsCount()) { expectedResultsButton.setVisible(true); } } @Override public void rowAdded(RowsGroup<?> group, Row<?> row) { // Checks if the max number of elements is reached. final Integer max = logFrameModel.getExpectedResultsMax(); if (max != null && max > 0 && max <= expectedResultsView.getRowsCount()) { expectedResultsButton.setVisible(false); } } @Override public void groupAdded(RowsGroup<?> group) { // Checks if the max number of groups is reached. final Integer max = logFrameModel.getExpectedResultsGroupsMax(); if (max != null && max > 1 && max <= expectedResultsView.getGroupsCount()) { expectedResultsGroupsButton.setVisible(false); } } }); activitiesView.addFlexTableViewListener(new FlexTableViewListener() { @Override public void rowRemoved(RowsGroup<?> group, Row<?> row) { // Checks if the max number of elements is reached. final Integer max = logFrameModel.getActivitiesMax(); if (max != null && max > 0 && max > activitiesView.getRowsCount()) { activitiesButton.setVisible(true); } } @Override public void rowAdded(RowsGroup<?> group, Row<?> row) { // Checks if the max number of elements is reached. final Integer max = logFrameModel.getActivitiesMax(); if (max != null && max > 0 && max <= activitiesView.getRowsCount()) { activitiesButton.setVisible(false); } } @Override public void groupAdded(RowsGroup<?> group) { // Checks if the max number of groups is reached. final Integer max = logFrameModel.getActivitiesGroupsMax(); if (max != null && max > 1 && max <= activitiesView.getGroupsCount()) { activitiesGroupsButton.setVisible(false); } } }); prerequisitesView.addFlexTableViewListener(new FlexTableViewListener() { @Override public void rowRemoved(RowsGroup<?> group, Row<?> row) { // Checks if the max number of elements is reached. final Integer max = logFrameModel.getPrerequisitesMax(); if (max != null && max > 0 && max > prerequisitesView.getRowsCount()) { prerequisitesButton.setVisible(true); } } @Override public void rowAdded(RowsGroup<?> group, Row<?> row) { // Checks if the max number of elements is reached. final Integer max = logFrameModel.getPrerequisitesMax(); if (max != null && max > 0 && max <= prerequisitesView.getRowsCount()) { prerequisitesButton.setVisible(false); } } @Override public void groupAdded(RowsGroup<?> group) { // Checks if the max number of groups is reached. final Integer max = logFrameModel.getPrerequisitesGroupsMax(); if (max != null && max > 1 && max <= prerequisitesView.getGroupsCount()) { prerequisitesGroupButton.setVisible(false); } } }); }
From source file:org.sigmah.client.ui.view.project.logframe.ProjectLogFrameGrid.java
License:Open Source License
/** * Builds the widget of the menus.//w ww . j a va 2 s .c o m * * @param menu * The actions menu. * @param label * The label beside this menu. * @return The widget to display this menu. */ private Widget buildMenuWidget(final ActionsMenu menu, final Label label) { // Menu button. final Anchor anchor = new Anchor(); anchor.setHTML(" "); anchor.addStyleName(CSS_MENU_BUTTON_STYLE_NAME); final ClickHandler clickHandler = new ClickHandler() { @Override public void onClick(ClickEvent event) { menu.show(anchor); } }; final MouseOverHandler mouseOverHandler = new MouseOverHandler() { @Override public void onMouseOver(MouseOverEvent event) { anchor.addStyleName(CSS_MENU_BUTTON_ACTIVE_STYLE_NAME); if (label != null) { label.addStyleName(CSS_CODE_LABEL_ACTIVE_STYLE_NAME); } } }; final MouseOutHandler mouseOutHandler = new MouseOutHandler() { @Override public void onMouseOut(MouseOutEvent event) { anchor.removeStyleName(CSS_MENU_BUTTON_ACTIVE_STYLE_NAME); if (label != null) { label.removeStyleName(CSS_CODE_LABEL_ACTIVE_STYLE_NAME); } } }; anchor.addClickHandler(clickHandler); anchor.addMouseOverHandler(mouseOverHandler); anchor.addMouseOutHandler(mouseOutHandler); // Label. if (label != null) { label.addClickHandler(clickHandler); label.addMouseOverHandler(mouseOverHandler); label.addMouseOutHandler(mouseOutHandler); } return anchor; }
From source file:org.sigmah.client.ui.widget.orgunit.OrgUnitTreeGrid.java
License:Open Source License
/** * Initializes a new {@code OrgUnitTreeGrid} widget. * //from w w w .jav a 2 s .c o m * @param hasSelectionModel * {@code true} if the tree grid widget manages a selection model, {@code false} if it does not. */ public OrgUnitTreeGrid(final boolean hasSelectionModel) { // -- // Creates columns. // -- final List<ColumnConfig> columns = new ArrayList<ColumnConfig>(); // Name column. final ColumnConfig nameColumn = new ColumnConfig(); nameColumn.setId(OrgUnitDTO.NAME); nameColumn.setHeaderText(I18N.CONSTANTS.projectName()); nameColumn.setRenderer(new TreeGridCellRenderer<OrgUnitDTO>()); nameColumn.setWidth(150); // Full Name column. final ColumnConfig fullNameColumn = new ColumnConfig(); fullNameColumn.setId(OrgUnitDTO.FULL_NAME); fullNameColumn.setHeaderText(I18N.CONSTANTS.projectFullName()); fullNameColumn.setWidth(250); fullNameColumn.setRenderer(new GridCellRenderer<OrgUnitDTO>() { @Override public Object render(final OrgUnitDTO model, final String property, final ColumnData config, final int rowIndex, final int colIndex, final ListStore<OrgUnitDTO> store, final Grid<OrgUnitDTO> grid) { final com.google.gwt.user.client.ui.Label visitButton = new com.google.gwt.user.client.ui.Label( (String) model.get(property)); visitButton.addStyleName(STYLE_FLEXIBILITY_ACTION); visitButton.addClickHandler(new ClickHandler() { @Override public void onClick(final ClickEvent event) { if (eventsHandler != null) { eventsHandler.onRowClickEvent(model); } } }); return visitButton; } }); // Country column. final ColumnConfig countryColumn = new ColumnConfig(); countryColumn.setId(OrgUnitDTO.OFFICE_LOCATION_COUNTRY); countryColumn.setHeaderText(I18N.CONSTANTS.projectCountry()); countryColumn.setWidth(100); countryColumn.setRenderer(new GridCellRenderer<OrgUnitDTO>() { @Override public Object render(final OrgUnitDTO model, final String property, final ColumnData config, final int rowIndex, final int colIndex, final ListStore<OrgUnitDTO> store, final Grid<OrgUnitDTO> grid) { final CountryDTO country = (CountryDTO) model.get(property); return CountryDTO.toString(country); } }); // Adds columns. if (hasSelectionModel) { // Tree selection model selectionModel = new TreeGridCheckboxSelectionModel<OrgUnitDTO>(); columns.add(selectionModel.getColumn()); } columns.add(nameColumn); columns.add(fullNameColumn); columns.add(countryColumn); // -- // Tree store. // -- final TreeStore<OrgUnitDTO> store = new TreeStore<OrgUnitDTO>(); store.setSortInfo(new SortInfo(OrgUnitDTO.NAME, SortDir.ASC)); store.setStoreSorter(new StoreSorter<OrgUnitDTO>() { @Override public int compare(final Store<OrgUnitDTO> store, final OrgUnitDTO m1, final OrgUnitDTO m2, final String property) { if (OrgUnitDTO.OFFICE_LOCATION_COUNTRY.equals(property)) { return ((CountryDTO) m1.get(property)).getName() .compareToIgnoreCase(((CountryDTO) m2.get(property)).getName()); } else { return super.compare(store, m1, m2, property); } } }); // -- // Tree grid. // -- tree = new TreeGrid<OrgUnitDTO>(store, new ColumnModel(columns)); tree.setBorders(true); tree.getStyle().setLeafIcon(OrgUnitImageBundle.ICONS.orgUnitSmall()); tree.getStyle().setNodeCloseIcon(OrgUnitImageBundle.ICONS.orgUnitSmall()); tree.getStyle().setNodeOpenIcon(OrgUnitImageBundle.ICONS.orgUnitSmallTransparent()); tree.setTrackMouseOver(false); tree.addPlugin(createOrgUnitFilters()); if (hasSelectionModel) { tree.setSelectionModel(selectionModel); tree.addPlugin(selectionModel); } // -- // Expand all button. // -- final Button expandButton = new Button(I18N.CONSTANTS.expandAll(), IconImageBundle.ICONS.expand(), new SelectionListener<ButtonEvent>() { @Override public void componentSelected(final ButtonEvent ce) { tree.expandAll(); } }); // -- // Collapse all button. // -- final Button collapseButton = new Button(I18N.CONSTANTS.collapseAll(), IconImageBundle.ICONS.collapse(), new SelectionListener<ButtonEvent>() { @Override public void componentSelected(final ButtonEvent ce) { tree.collapseAll(); } }); // -- // Toolbar. // -- toolbar = new ToolBar(); toolbar.setAlignment(HorizontalAlignment.LEFT); toolbar.add(expandButton); toolbar.add(collapseButton); }
From source file:org.sigmah.client.ui.widget.panel.FoldPanel.java
License:Open Source License
/** * Creates a new and empty fold panel./*w w w. j a v a 2s . c o m*/ */ public FoldPanel() { addStyleName("fold"); final HorizontalPanel titleBar = new HorizontalPanel(); titleBar.getElement().getStyle().setDisplay(Style.Display.NONE); titleBar.setVerticalAlignment(HasVerticalAlignment.ALIGN_MIDDLE); final Label heading = new Label(); heading.addStyleName("fold-title"); heading.addClickHandler(new ClickHandler() { @Override public void onClick(ClickEvent event) { if (state == STATE_EXPANDED) collapse(); else expand(true); } }); heading.addStyleName("fold-expanded"); titleBar.add(heading); titleBar.setCellWidth(heading, "100%"); final FlowPanel toolButtonPanel = new FlowPanel(); titleBar.add(toolButtonPanel); final FlowPanel content = new FlowPanel(); super.add(titleBar); super.add(content); }
From source file:org.sigmah.shared.dto.element.FilesListElementDTO.java
License:Open Source License
/** * Defines the column model for the files list grid. * /* w w w. ja v a 2s. c om*/ * @param enabled * If the component is enabled. * @return The column model. */ private ColumnConfig[] getColumnModel(final boolean enabled) { final boolean canAdd = enabled && userCanPerformChangeType(ValueEventChangeType.ADD); final boolean canRemove = enabled && userCanPerformChangeType(ValueEventChangeType.REMOVE); // File's add date. final ColumnConfig dateColumn = new ColumnConfig(); dateColumn.setId("date"); dateColumn.setHeaderText(I18N.CONSTANTS.flexibleElementFilesListDate()); dateColumn.setWidth(60); dateColumn.setRenderer(new GridCellRenderer<FileDTO>() { final DateTimeFormat format = DateUtils.DATE_SHORT; @Override public Object render(FileDTO model, String property, ColumnData config, int rowIndex, int colIndex, ListStore<FileDTO> store, Grid<FileDTO> grid) { final FileVersionDTO last = model.getLastVersion(); return format.format(last.getAddedDate()); } }); // File's name. final ColumnConfig nameColumn = new ColumnConfig(); nameColumn.setId("name"); nameColumn.setHeaderText(I18N.CONSTANTS.flexibleElementFilesListName()); nameColumn.setWidth(100); nameColumn.setRenderer(new GridCellRenderer<FileDTO>() { @Override public Object render(final FileDTO model, String property, ColumnData config, int rowIndex, int colIndex, ListStore<FileDTO> store, Grid<FileDTO> grid) { return createDownloadLink(model, null, transfertManager); } }); // File's author. final ColumnConfig authorColumn = new ColumnConfig(); authorColumn.setId("author"); authorColumn.setHeaderText(I18N.CONSTANTS.flexibleElementFilesListAuthor()); authorColumn.setWidth(100); authorColumn.setRenderer(new GridCellRenderer<FileDTO>() { @Override public Object render(FileDTO model, String property, ColumnData config, int rowIndex, int colIndex, ListStore<FileDTO> store, Grid<FileDTO> grid) { final FileVersionDTO last = model.getLastVersion(); return last.getAuthorFirstName() != null ? last.getAuthorFirstName() + " " + last.getAuthorName() : last.getAuthorName(); } }); // File's last version number. final ColumnConfig versionColumn = new ColumnConfig(); versionColumn.setId("version"); versionColumn.setHeaderText(I18N.CONSTANTS.flexibleElementFilesListVersion()); versionColumn.setWidth(20); versionColumn.setRenderer(new GridCellRenderer<FileDTO>() { @Override public Object render(final FileDTO model, String property, ColumnData config, int rowIndex, int colIndex, ListStore<FileDTO> store, Grid<FileDTO> grid) { final FileVersionDTO last = model.getLastVersion(); return last.getVersionNumber(); } }); // Upload new version. final ColumnConfig addVersionColumn = new ColumnConfig(); addVersionColumn.setId("addVersion"); addVersionColumn.setHeaderText(null); addVersionColumn.setWidth(60); addVersionColumn.setSortable(false); addVersionColumn.setRenderer(new GridCellRenderer<FileDTO>() { @Override public Object render(final FileDTO model, String property, ColumnData config, int rowIndex, int colIndex, ListStore<FileDTO> store, Grid<FileDTO> grid) { final ButtonFileUploadField uploadField = new ButtonFileUploadField(); uploadField.setButtonCaption(I18N.CONSTANTS.flexibleElementFilesListUploadVersion()); uploadField.setName(FileUploadUtils.DOCUMENT_CONTENT); uploadField.setButtonIcon(IconImageBundle.ICONS.attach()); uploadField.setEnabled(canAdd); final FormPanel uploadFormPanel = new FormPanel(); uploadFormPanel.setLayout(new FitLayout()); uploadFormPanel.setBodyBorder(false); uploadFormPanel.setHeaderVisible(false); uploadFormPanel.setPadding(0); uploadFormPanel.setEncoding(Encoding.MULTIPART); uploadFormPanel.setMethod(Method.POST); uploadFormPanel.setAction(GWT.getModuleBaseURL() + "upload"); final HiddenField<String> elementIdHidden = new HiddenField<String>(); elementIdHidden.setName(FileUploadUtils.DOCUMENT_FLEXIBLE_ELEMENT); final HiddenField<String> projectIdHidden = new HiddenField<String>(); projectIdHidden.setName(FileUploadUtils.DOCUMENT_PROJECT); final HiddenField<String> idHidden = new HiddenField<String>(); idHidden.setName(FileUploadUtils.DOCUMENT_ID); final HiddenField<String> nameHidden = new HiddenField<String>(); nameHidden.setName(FileUploadUtils.DOCUMENT_NAME); final HiddenField<String> authorHidden = new HiddenField<String>(); authorHidden.setName(FileUploadUtils.DOCUMENT_AUTHOR); final HiddenField<String> versionHidden = new HiddenField<String>(); versionHidden.setName(FileUploadUtils.DOCUMENT_VERSION); uploadFormPanel.add(uploadField); uploadFormPanel.add(elementIdHidden); uploadFormPanel.add(projectIdHidden); uploadFormPanel.add(authorHidden); uploadFormPanel.add(idHidden); uploadFormPanel.add(nameHidden); uploadFormPanel.add(versionHidden); uploadField.addListener(Events.OnChange, new Listener<DomEvent>() { @Override public void handleEvent(DomEvent be) { be.getEvent().stopPropagation(); if (transfertManager.canUpload()) { // Set hidden fields values. elementIdHidden.setValue(String.valueOf(getId())); projectIdHidden.setValue(String.valueOf(currentContainerDTO.getId())); idHidden.setValue(String.valueOf(model.getId())); nameHidden.setValue(uploadField.getValue()); authorHidden.setValue(String.valueOf(auth().getUserId())); versionHidden.setValue(String.valueOf(model.getLastVersion().getVersionNumber() + 1)); // Debug form hidden values. if (Log.isDebugEnabled()) { final StringBuilder sb = new StringBuilder(); sb.append("Upload a new version with parameters: "); sb.append("version number="); sb.append(versionHidden.getValue()); sb.append(" ; file id="); sb.append(idHidden.getValue()); sb.append(" ; file name="); sb.append(nameHidden.getValue()); sb.append(" ; author id="); sb.append(authorHidden.getValue()); Log.debug(sb.toString()); } // Submits the form. transfertManager.upload(uploadFormPanel, createUploadProgressListener()); } else { N10N.warn(I18N.CONSTANTS.flexibleElementFilesListUploadUnable()); } } }); return uploadFormPanel; } }); // Versions list. final ColumnConfig historyColumn = new ColumnConfig(); historyColumn.setId("history"); historyColumn.setHeaderText(null); historyColumn.setWidth(20); historyColumn.setSortable(false); historyColumn.setRenderer(new GridCellRenderer<FileDTO>() { @Override public Object render(final FileDTO model, String property, ColumnData config, int rowIndex, int colIndex, ListStore<FileDTO> store, Grid<FileDTO> grid) { final com.google.gwt.user.client.ui.Label historyButton = new com.google.gwt.user.client.ui.Label( I18N.CONSTANTS.flexibleElementFilesListHistory()); historyButton.addStyleName("flexibility-action"); historyButton.addClickHandler(new ClickHandler() { @Override public void onClick(ClickEvent e) { final FileDetailsWindow versionsWindow = new FileDetailsWindow(dispatch, transfertManager, canRemove); versionsWindow.addListener(new FileDetailsWindow.FileDetailsWindowListener() { @Override public void versionDeleted(FileVersionDTO version) { updateComponent(); } }); versionsWindow.show(model); } }); return historyButton; } }); // Delete. final ColumnConfig deleteColumn = new ColumnConfig(); deleteColumn.setId("delete"); deleteColumn.setHeaderText(null); deleteColumn.setWidth(10); deleteColumn.setSortable(false); deleteColumn.setRenderer(new GridCellRenderer<FileDTO>() { @Override public Object render(final FileDTO model, String property, ColumnData config, int rowIndex, int colIndex, final ListStore<FileDTO> store, Grid<FileDTO> grid) { if (!enabled) { return new Label("-"); } final Image image = IconImageBundle.ICONS.remove().createImage(); image.setTitle(I18N.CONSTANTS.remove()); image.addStyleName("flexibility-action"); image.addClickHandler(new ClickHandler() { @Override public void onClick(final ClickEvent event) { // Asks the client to confirm the file removal. N10N.confirmation(I18N.CONSTANTS.flexibleElementFilesListDelete(), I18N.MESSAGES.flexibleElementFilesListConfirmDelete(model.getName()), new ConfirmCallback() { /** * OK action. */ @Override public void onAction() { // Deletes it. dispatch.execute(new Delete(model, currentContainerDTO.getId(), getId()), new CommandResultHandler<VoidResult>() { @Override public void onCommandFailure(final Throwable caught) { N10N.error( I18N.CONSTANTS .flexibleElementFilesListDeleteError(), I18N.CONSTANTS .flexibleElementFilesListDeleteErrorDetails()); } @Override public void onCommandSuccess(final VoidResult result) { store.remove(model); uploadField.setEnabled(true); uploadField.reset(); if (store.getCount() == 0) { handlerManager .fireEvent(new RequiredValueEvent(false, true)); } } }, new LoadingMask(mainPanel)); } }); } }); return image; } }); if (canRemove) { return new ColumnConfig[] { dateColumn, nameColumn, authorColumn, versionColumn, addVersionColumn, historyColumn, deleteColumn }; } else { return new ColumnConfig[] { dateColumn, nameColumn, authorColumn, versionColumn, addVersionColumn, historyColumn }; } }
From source file:org.sigmah.shared.dto.element.FilesListElementDTO.java
License:Open Source License
/** * Create a download link for the given file. * /*from w ww.ja v a 2 s .c om*/ * @param file * The file to download. * @return The download link. */ private static com.google.gwt.user.client.ui.Label createDownloadLink(final FileDTO file, final Integer version, final TransfertManager transfertManager) { final FileVersionDTO versionDTO; if (version != null) { versionDTO = file.getVersion(version); } else { versionDTO = file.getLastVersion(); } if (versionDTO == null) { return null; } if (!versionDTO.isAvailable()) { return new com.google.gwt.user.client.ui.Label(versionDTO.getName() + '.' + versionDTO.getExtension() + ' ' + I18N.CONSTANTS.flexibleElementFilesListNotUploadedYet()); } final com.google.gwt.user.client.ui.Label downloadButton = new com.google.gwt.user.client.ui.Label( versionDTO.getName() + '.' + versionDTO.getExtension()); downloadButton.addStyleName("flexibility-action"); // Buttons listeners. downloadButton.addClickHandler(new ClickHandler() { @Override public void onClick(ClickEvent e) { transfertManager.canDownload(versionDTO, new AsyncCallback<Boolean>() { @Override public void onFailure(Throwable caught) { N10N.error(I18N.CONSTANTS.flexibleElementFilesListDownloadError(), I18N.CONSTANTS.flexibleElementFilesListDownloadErrorDetails()); } @Override public void onSuccess(Boolean result) { if (result) { transfertManager.download(versionDTO, new ProgressListener() { @Override public void onProgress(double progress, double speed) { } @Override public void onFailure(Cause cause) { N10N.error(I18N.CONSTANTS.flexibleElementFilesListDownloadError(), I18N.CONSTANTS.flexibleElementFilesListDownloadErrorDetails()); } @Override public void onLoad(String result) { } }); } else { N10N.error(I18N.CONSTANTS.flexibleElementFilesListDownloadError(), I18N.CONSTANTS.flexibleElementFilesListDownloadUnable()); } } }); } }); return downloadButton; }
From source file:org.sigmah.shared.dto.element.TripletsListElementDTO.java
License:Open Source License
@Override public Object renderHistoryToken(final HistoryTokenListDTO token) { final Label details = new Label(); details.addStyleName("history-details"); if (token.getTokens().size() == 1) { details.setText("1 " + I18N.CONSTANTS.historyModification()); } else {//from w ww .jav a2 s . com details.setText(token.getTokens().size() + " " + I18N.CONSTANTS.historyModifications()); } details.addClickHandler(new ClickHandler() { private Window window; @Override public void onClick(ClickEvent e) { if (window == null) { // Builds window. window = new Window(); window.setAutoHide(true); window.setModal(false); window.setPlain(true); window.setHeaderVisible(true); window.setClosable(true); window.setLayout(new FitLayout()); window.setWidth(750); window.setHeight(400); window.setBorders(false); window.setResizable(true); // Builds grid. final ListStore<TripletValueDTO> store = new ListStore<TripletValueDTO>(); final com.extjs.gxt.ui.client.widget.grid.Grid<TripletValueDTO> grid = new com.extjs.gxt.ui.client.widget.grid.Grid<TripletValueDTO>( store, new ColumnModel(Arrays.asList(getColumnModel()))); grid.getView().setForceFit(true); grid.setBorders(false); grid.setAutoExpandColumn("name"); window.add(grid); // Fills store. for (final HistoryTokenDTO t : token.getTokens()) { final List<String> l = ValueResultUtils.splitElements(t.getValue()); final TripletValueDTO triplet = new TripletValueDTO(); triplet.setCode(l.get(0)); triplet.setName(l.get(1)); triplet.setPeriod(l.get(2)); triplet.setType(t.getType()); store.add(triplet); } } window.setPagePosition(e.getNativeEvent().getClientX(), e.getNativeEvent().getClientY()); window.show(); } private ColumnConfig[] getColumnModel() { // Change type. final ColumnConfig typeColumn = new ColumnConfig(); typeColumn.setId("type"); typeColumn.setHeaderText(I18N.CONSTANTS.historyModificationType()); typeColumn.setWidth(150); typeColumn.setSortable(false); typeColumn.setRenderer(new GridCellRenderer<TripletValueDTO>() { @Override public Object render(TripletValueDTO model, String property, ColumnData config, int rowIndex, int colIndex, ListStore<TripletValueDTO> store, Grid<TripletValueDTO> grid) { if (model.getType() != null) { switch (model.getType()) { case ADD: return I18N.CONSTANTS.historyAdd(); case EDIT: return I18N.CONSTANTS.historyEdit(); case REMOVE: return I18N.CONSTANTS.historyRemove(); default: return "-"; } } else { return "-"; } } }); // Code. final ColumnConfig codeColumn = new ColumnConfig(); codeColumn.setId("code"); codeColumn.setHeaderText(I18N.CONSTANTS.flexibleElementTripletsListCode()); codeColumn.setWidth(200); // Name. final ColumnConfig nameColumn = new ColumnConfig(); nameColumn.setId("name"); nameColumn.setHeaderText(I18N.CONSTANTS.flexibleElementTripletsListName()); nameColumn.setWidth(200); // Period. final ColumnConfig periodColumn = new ColumnConfig(); periodColumn.setId("period"); periodColumn.setHeaderText(I18N.CONSTANTS.flexibleElementTripletsListPeriod()); periodColumn.setWidth(200); return new ColumnConfig[] { typeColumn, codeColumn, nameColumn, periodColumn }; } }); return details; }
From source file:org.sonar.plugins.design.ui.dependencies.client.DependenciesTable.java
License:Open Source License
private void addDependencyRow(final FlexTable grid, final int row, final long resourceId, final String name) { Label link = new Label(name); link.setStyleName("link"); link.addClickHandler(new ClickHandler() { public void onClick(ClickEvent clickEvent) { Links.openResourcePopup(String.valueOf(resourceId)); }/*from w w w . j a v a 2 s . c o m*/ }); grid.setWidget(row, 1, link); }