List of usage examples for com.google.gwt.i18n.client DateTimeFormat getMediumTimeFormat
@Deprecated public static DateTimeFormat getMediumTimeFormat()
From source file:com.anzsoft.client.ui.ChatWindow.java
License:Open Source License
private DivElement createMessage(final String user, final String message, boolean local) { Element element = DOM.createDiv(); DivElement messageDiv = DivElement.as(element); lastMsgID = DOM.createUniqueId();/*from ww w. j ava 2 s.co m*/ messageDiv.setId(lastMsgID); messageDiv.setClassName("selected-article"); //create the avatar table element = DOM.createTable(); TableElement avatarTable = TableElement.as(element); messageDiv.appendChild(avatarTable); avatarTable.setAttribute("hspace", "4"); avatarTable.setAttribute("cellspacing", "0"); avatarTable.setAttribute("vspace", "2"); avatarTable.setAttribute("border", "0"); avatarTable.setAttribute("align", "left"); Element tbodyElement = DOM.createTBody(); avatarTable.appendChild(tbodyElement); Element trElement = DOM.createTR(); tbodyElement.appendChild(trElement); Element tdElement = DOM.createTD(); trElement.appendChild(tdElement); tdElement.setAttribute("height", "45"); tdElement.setAttribute("width", "45"); tdElement.setAttribute("align", "middle"); Style style = tdElement.getStyle(); style.setProperty("border", "1px solid black"); style.setProperty("background-color", "white"); Element imgElement = DOM.createImg(); ImageElement imageElement = ImageElement.as(imgElement); tdElement.appendChild(imageElement); imageElement.setAttribute("height", "45"); imageElement.setAttribute("widht", "45"); XmppVCard vc = null; if (local) vc = JabberApp.instance().getSelfVCard(); else vc = vcard; if (!GXT.isIE && vc != null && !vc.photo().isEmpty()) imageElement.setSrc("data:image;base64," + vc.photo()); else imageElement.setSrc(JabberApp.instance().getAvatarUrl(jid)); tdElement = DOM.createTD(); tdElement.setInnerHTML("  "); trElement.appendChild(tdElement); //create the div for timestamp and nick element = DOM.createDiv(); DivElement tnDiv = DivElement.as(element); tnDiv.setClassName("msg_header"); messageDiv.appendChild(tnDiv); //style = tnDiv.getStyle(); //style.setProperty("border-bottom", "1px solid black"); element = DOM.createTable(); TableElement tnTableElement = TableElement.as(element); tnDiv.appendChild(tnTableElement); tnTableElement.setAttribute("cellspacing", "0"); tnTableElement.setAttribute("cellpadding", "0"); tnTableElement.setAttribute("width", "80%"); tnTableElement.setAttribute("border", "0"); tbodyElement = DOM.createTBody(); tnTableElement.appendChild(tbodyElement); trElement = DOM.createTR(); tbodyElement.appendChild(trElement); Element nickElement = DOM.createTD(); trElement.appendChild(nickElement); nickElement.setClassName("msg-nick"); nickElement.setAttribute("valign", "bottom"); nickElement.setAttribute("align", "left"); nickElement.setInnerHTML("<b>" + user + "</b>"); Element timeElement = DOM.createTD(); trElement.appendChild(timeElement); timeElement.setClassName("msg-nick"); timeElement.setAttribute("valign", "bottom"); timeElement.setAttribute("align", "right"); DateTimeFormat timeFormat = DateTimeFormat.getMediumTimeFormat(); String datetime = timeFormat.format(new java.util.Date()); timeElement.setInnerHTML("<small>" + datetime + "</small>"); Element messageElement = DOM.createSpan(); messageElement.setInnerHTML(ChatTextFormatter.format(message == null ? "" : message).getHTML()); messageDiv.appendChild(messageElement); return messageDiv; }
From source file:com.example.querybuilder.client.TableTreeGridPanel.java
License:Open Source License
public TableTreeGridPanel() { setHeading("Tables"); setIcon(Resources.FOLDER_TABLE); setBodyBorder(true); // ContentPanel inside TabItem requires removing top border, see onRender setLayout(new FitLayout()); List<ColumnConfig> columnConfigs = new LinkedList<ColumnConfig>(); ColumnConfig nameColumnConfig = new ColumnConfig(Keys.NAME, "Name", 100); nameColumnConfig.setRenderer(new TreeGridCellRenderer<ModelData>()); columnConfigs.add(nameColumnConfig); ColumnConfig rowCountColumnConfig = new ColumnConfig(Keys.ROW_COUNT, "Rows", 65); rowCountColumnConfig.setAlignment(HorizontalAlignment.RIGHT); columnConfigs.add(rowCountColumnConfig); ColumnConfig columnCountColumnConfig = new ColumnConfig(Keys.COLUMN_COUNT, "Columns", 65); columnCountColumnConfig.setAlignment(HorizontalAlignment.RIGHT); columnConfigs.add(columnCountColumnConfig); ColumnConfig dateColumnConfig = new ColumnConfig(Keys.DATE, "Date", 75); dateColumnConfig.setAlignment(HorizontalAlignment.RIGHT); dateColumnConfig.setDateTimeFormat(DateTimeFormat.getShortDateFormat()); columnConfigs.add(dateColumnConfig); ColumnConfig timeColumnConfig = new ColumnConfig(Keys.DATE, "Time", 75); timeColumnConfig.setAlignment(HorizontalAlignment.RIGHT); timeColumnConfig.setDateTimeFormat(DateTimeFormat.getMediumTimeFormat()); columnConfigs.add(timeColumnConfig); ColumnModel columnModel = new ColumnModel(columnConfigs); tableTreeStore = new MergeTreeStore(Keys.NAME, Keys.NODE_TYPE); tableTreeStore.setMonitorChanges(true); tableTreeGrid = new ExtendedTreeGrid(tableTreeStore, columnModel); tableTreeGrid.setIconProvider(NodeTypeIconProvider.getInstance()); tableTreeGrid.setAutoExpand(true);/*w w w.j a v a 2 s . c o m*/ tableTreeGrid.setAutoExpandColumn(Keys.NAME); tableTreeGrid.setAutoExpandMin(100); tableTreeGrid.setBorders(false); tableTreeGrid.getSelectionModel().addSelectionChangedListener(new TableTreeGridSelectionChangedListener()); tableTreeGrid.addListener(Events.OnDoubleClick, new TableTreeGridDoubleClickListener()); new TableTreeGridDragSource(tableTreeGrid); add(tableTreeGrid); ToolBar toolBar = createToolBar(); setBottomComponent(toolBar); QueryBuilderServiceBus.addServiceProvider(new TableTreeGridPanelServiceProvider()); }
From source file:com.google.gwt.sample.i18n.client.DateTimeFormatExampleController.java
License:Apache License
@Override protected String doGetPattern(String patternKey) { // Date + Time if ("fullDateTime".equals(patternKey)) { return DateTimeFormat.getFullDateTimeFormat().getPattern(); }// ww w .j a v a 2 s . co m if ("longDateTime".equals(patternKey)) { return DateTimeFormat.getLongDateTimeFormat().getPattern(); } if ("mediumDateTime".equals(patternKey)) { return DateTimeFormat.getMediumDateTimeFormat().getPattern(); } if ("shortDateTime".equals(patternKey)) { return DateTimeFormat.getShortDateTimeFormat().getPattern(); } // Date only if ("fullDate".equals(patternKey)) { return DateTimeFormat.getFullDateFormat().getPattern(); } if ("longDate".equals(patternKey)) { return DateTimeFormat.getLongDateFormat().getPattern(); } if ("mediumDate".equals(patternKey)) { return DateTimeFormat.getMediumDateFormat().getPattern(); } if ("shortDate".equals(patternKey)) { return DateTimeFormat.getShortDateFormat().getPattern(); } // Time only if ("fullTime".equals(patternKey)) { return DateTimeFormat.getFullTimeFormat().getPattern(); } if ("longTime".equals(patternKey)) { return DateTimeFormat.getLongTimeFormat().getPattern(); } if ("mediumTime".equals(patternKey)) { return DateTimeFormat.getMediumTimeFormat().getPattern(); } if ("shortTime".equals(patternKey)) { return DateTimeFormat.getShortTimeFormat().getPattern(); } throw new IllegalArgumentException("Unknown pattern key '" + patternKey + "'"); }
From source file:eolus.client.EolusUI.java
License:EUPL
void refreshTime() { RootPanel.get("time").getElement().setInnerHTML(DateTimeFormat.getMediumTimeFormat().format(new Date())); }
From source file:java.text.DateFormat.java
License:Apache License
public final static DateFormat getTimeInstance() { return new SimpleDateFormat(DateTimeFormat.getMediumTimeFormat()); }
From source file:net.s17fabu.vip.gwt.showcase.client.content.i18n.CwDateTimeFormat.java
License:Apache License
/** * Update the selected pattern based on the pattern in the list. */// w ww .jav a2s .c o m private void updatePattern() { switch (patternList.getSelectedIndex()) { // Date + Time case 0: activeFormat = DateTimeFormat.getFullDateTimeFormat(); patternBox.setText(activeFormat.getPattern()); patternBox.setEnabled(false); break; case 1: activeFormat = DateTimeFormat.getLongDateTimeFormat(); patternBox.setText(activeFormat.getPattern()); patternBox.setEnabled(false); break; case 2: activeFormat = DateTimeFormat.getMediumDateTimeFormat(); patternBox.setText(activeFormat.getPattern()); patternBox.setEnabled(false); break; case 3: activeFormat = DateTimeFormat.getShortDateTimeFormat(); patternBox.setText(activeFormat.getPattern()); patternBox.setEnabled(false); break; // Date only case 4: activeFormat = DateTimeFormat.getFullDateFormat(); patternBox.setText(activeFormat.getPattern()); patternBox.setEnabled(false); break; case 5: activeFormat = DateTimeFormat.getLongDateFormat(); patternBox.setText(activeFormat.getPattern()); patternBox.setEnabled(false); break; case 6: activeFormat = DateTimeFormat.getMediumDateFormat(); patternBox.setText(activeFormat.getPattern()); patternBox.setEnabled(false); break; case 7: activeFormat = DateTimeFormat.getShortDateFormat(); patternBox.setText(activeFormat.getPattern()); patternBox.setEnabled(false); break; // Time only case 8: activeFormat = DateTimeFormat.getFullTimeFormat(); patternBox.setText(activeFormat.getPattern()); patternBox.setEnabled(false); break; case 9: activeFormat = DateTimeFormat.getLongTimeFormat(); patternBox.setText(activeFormat.getPattern()); patternBox.setEnabled(false); break; case 10: activeFormat = DateTimeFormat.getMediumTimeFormat(); patternBox.setText(activeFormat.getPattern()); patternBox.setEnabled(false); break; case 11: activeFormat = DateTimeFormat.getShortTimeFormat(); patternBox.setText(activeFormat.getPattern()); patternBox.setEnabled(false); break; // Custom case 12: patternBox.setEnabled(true); String pattern = patternBox.getText(); try { activeFormat = DateTimeFormat.getFormat(pattern); } catch (IllegalArgumentException e) { showErrorMessage(constants.cwDateTimeFormatInvalidPattern()); return; } break; } // Update the formatted value updateFormattedValue(); }
From source file:org.sigmah.client.page.orgunit.reports.OrgUnitReportsView.java
License:Open Source License
public void setReport(final ProjectReportDTO report) { mainPanel.removeAll();//from ww w .j a va2 s .c o m // currentReport = report; if (autoSaveTimer != null) { autoSaveTimer.cancel(); autoSaveTimer = null; } if (report == null) return; // Preparing the view for the new report textAreas.clear(); oldContents.clear(); keyQuestionState.clear(); // Title bar final ContentPanel reportPanel = new ContentPanel(new FitLayout()); reportPanel.setScrollMode(Scroll.AUTOY); reportPanel.setHeading(report.getName()); final ToolButton closeButton = new ToolButton("x-tool-close"); closeButton.addListener(Events.Select, new Listener<BaseEvent>() { @Override public void handleEvent(BaseEvent be) { final OrgUnitState state = new OrgUnitState(currentState.getOrgUnitId()); state.setCurrentSection(currentState.getCurrentSection()); state.setArgument("-1"); eventBus.fireEvent(new NavigationEvent(NavigationHandler.NavigationRequested, state, null)); } }); reportPanel.getHeader().addTool(closeButton); // Report container final FlowPanel flowPanel = new FlowPanel(); // Report final FoldPanel root = new FoldPanel(); root.addStyleName("project-report"); final List<ProjectReportSectionDTO> sections = report.getSections(); final StringBuilder prefix = new StringBuilder(); for (int index = 0; index < sections.size(); index++) { final ProjectReportSectionDTO section = sections.get(index); prefix.append(index + 1).append('.'); displaySection(section, root, prefix, 1, report.isDraft()); prefix.setLength(0); } // Toolbar final ToolBar toolBar = new ToolBar(); final IconImageBundle icons = GWT.create(IconImageBundle.class); if (report.isDraft()) { // Draft banner final HorizontalPanel header = new HorizontalPanel(); header.addStyleName("project-report-draft"); // The "Personal Draft" final Label personalDraft = new Label(I18N.MESSAGES.personalDraft()); personalDraft.addStyleName("project-report-personalDraft"); final DateTimeFormat dateFormat = DateTimeFormat.getMediumDateFormat(); final DateTimeFormat timeFormat = DateTimeFormat.getMediumTimeFormat(); // The label showing the last changed time final Label draftLastChangedTime = new Label(I18N.MESSAGES.reportDraftLastChanged( dateFormat.format(report.getLastEditDate()), timeFormat.format(report.getLastEditDate()))); // Add the two labels header.add(personalDraft); header.add(draftLastChangedTime); final Button cancelButton = new Button(I18N.CONSTANTS.delete()); final Button sendButton = new Button(I18N.CONSTANTS.sendReportDraft()); cancelButton.addSelectionListener(new SelectionListener<ButtonEvent>() { @Override public void componentSelected(ButtonEvent ce) { final RemoveProjectReportDraft removeDraft = new RemoveProjectReportDraft( report.getVersionId()); final GetProjectReport getReport = new GetProjectReport(report.getId()); final AsyncCallback<VoidResult> callback = AsyncCallbacks.emptyCallback(); dispatcher.execute(removeDraft, null, callback); dispatcher.execute(getReport, null, new AsyncCallback<ProjectReportDTO>() { @Override public void onFailure(Throwable caught) { MessageBox.alert(I18N.CONSTANTS.projectTabReports(), I18N.CONSTANTS.reportEditError(), null); } @Override public void onSuccess(ProjectReportDTO result) { Notification.show(I18N.CONSTANTS.projectTabReports(), I18N.CONSTANTS.reportEditCancelSuccess()); setReport(result); } }); } }); sendButton.addSelectionListener(new SelectionListener<ButtonEvent>() { @Override public void componentSelected(ButtonEvent ce) { final HashMap<String, Object> changes = new HashMap<String, Object>(); changes.put("currentPhase", phaseName); for (final Map.Entry<Integer, RichTextArea> entry : textAreas.entrySet()) changes.put(entry.getKey().toString(), entry.getValue().getHTML()); final UpdateEntity updateEntity = new UpdateEntity("ProjectReport", report.getVersionId(), changes); final PromoteProjectReportDraft promoteDraft = new PromoteProjectReportDraft(report.getId(), report.getVersionId()); final AsyncCallback<VoidResult> callback = AsyncCallbacks.emptyCallback(); dispatcher.execute(updateEntity, null, callback); dispatcher.execute(promoteDraft, null, new AsyncCallback<ProjectReportDTO>() { @Override public void onFailure(Throwable caught) { MessageBox.alert(I18N.CONSTANTS.projectTabReports(), I18N.CONSTANTS.reportSaveError(), null); } @Override public void onSuccess(ProjectReportDTO result) { Notification.show(I18N.CONSTANTS.projectTabReports(), I18N.CONSTANTS.reportSaveSuccess()); setReport(result); } }); } }); final HorizontalPanel buttons = new HorizontalPanel(); buttons.setSpacing(5); buttons.setVerticalAlignment(HasVerticalAlignment.ALIGN_MIDDLE); buttons.addStyleName("project-report-draft-button"); buttons.add(cancelButton); buttons.add(sendButton); header.add(buttons); header.setCellHorizontalAlignment(buttons, HasHorizontalAlignment.ALIGN_RIGHT); flowPanel.add(header); // Save action final Listener<BaseEvent> saveListener = new Listener<BaseEvent>() { @Override public void handleEvent(BaseEvent be) { final HashMap<String, String> changes = new HashMap<String, String>(); changes.put("currentPhase", phaseName); for (final Map.Entry<Integer, RichTextArea> entry : textAreas.entrySet()) changes.put(entry.getKey().toString(), entry.getValue().getHTML()); final UpdateEntity updateEntity = new UpdateEntity("ProjectReport", report.getVersionId(), (Map<String, Object>) (Map<String, ?>) changes); dispatcher.execute(updateEntity, null, new AsyncCallback<VoidResult>() { @Override public void onFailure(Throwable caught) { MessageBox.alert(I18N.CONSTANTS.projectTabReports(), I18N.CONSTANTS.reportSaveError(), null); } @Override public void onSuccess(VoidResult result) { Notification.show(I18N.CONSTANTS.projectTabReports(), I18N.CONSTANTS.reportSaveSuccess()); final Date now = new Date(); header.clear(); draftLastChangedTime.setText(I18N.MESSAGES .reportDraftLastChanged(dateFormat.format(now), timeFormat.format(now))); personalDraft.setText(I18N.MESSAGES.personalDraft()); header.add(personalDraft); header.add(draftLastChangedTime); header.add(buttons); boolean found = false; for (int index = 0; !found && index < store.getCount(); index++) { final ReportReference reference = store.getAt(index); if (reference.getId().equals(report.getId())) { store.remove(reference); reference.setEditorName(authentication.getUserShortName()); reference.setPhaseName(phaseName); reference.setLastEditDate(new Date()); store.add(reference); found = true; } } updateChanges(); autoSaveTimer.cancel(); autoSaveTimer.schedule(AUTO_SAVE_PERIOD); } }); } }; // Save button final Button saveButton = new Button(I18N.CONSTANTS.save(), icons.save()); saveButton.addListener(Events.Select, saveListener); toolBar.add(saveButton); toolBar.add(new SeparatorToolItem()); // Auto save timer autoSaveTimer = new Timer() { @Override public void run() { saveListener.handleEvent(null); } }; autoSaveTimer.schedule(AUTO_SAVE_PERIOD); } else { final Button editReportButton = new Button(I18N.CONSTANTS.edit(), icons.editPage()); if (ProfileUtils.isGranted(authentication, GlobalPermissionEnum.MANAGE_UNIT)) { toolBar.add(editReportButton); } editReportButton.addSelectionListener(new SelectionListener<ButtonEvent>() { @Override public void componentSelected(ButtonEvent ce) { // Draft creation final HashMap<String, Object> properties = new HashMap<String, Object>(); properties.put("reportId", report.getId()); properties.put("phaseName", phaseName); final CreateEntity createDraft = new CreateEntity("ProjectReportDraft", properties); // Retrieving the new draft final GetProjectReport getReportDraft = new GetProjectReport(report.getId()); final AsyncCallback<CreateResult> callback = AsyncCallbacks.emptyCallback(); dispatcher.execute(createDraft, null, callback); dispatcher.execute(getReportDraft, null, new AsyncCallback<ProjectReportDTO>() { @Override public void onFailure(Throwable caught) { MessageBox.alert(I18N.CONSTANTS.projectTabReports(), I18N.CONSTANTS.reportEditError(), null); } @Override public void onSuccess(ProjectReportDTO result) { setReport(result); } }); } }); final Button exportReportButton = new Button(I18N.CONSTANTS.exportToWord(), icons.msword()); toolBar.add(exportReportButton); exportReportButton.addSelectionListener(new SelectionListener<ButtonEvent>() { @Override public void componentSelected(ButtonEvent ce) { final FormElement form = FormElement.as(DOM.createForm()); form.setAction(GWT.getModuleBaseURL() + "export"); form.setTarget("_downloadFrame"); form.setMethod("POST"); final InputElement typeField = InputElement.as(DOM.createInputText()); typeField.setAttribute("type", "hidden"); typeField.setName(ExportUtils.PARAM_EXPORT_TYPE); typeField.setValue(ExportUtils.ExportType.PROJECT_REPORT.toString()); form.appendChild(typeField); final InputElement formatField = InputElement.as(DOM.createInputText()); formatField.setAttribute("type", "hidden"); formatField.setName(ExportUtils.PARAM_EXPORT_FORMAT); formatField.setValue(ExportUtils.ExportFormat.MS_WORD.name()); form.appendChild(formatField); final InputElement idField = InputElement.as(DOM.createInputText()); idField.setAttribute("type", "hidden"); idField.setName(ExportUtils.PARAM_EXPORT_PROJECT_ID); idField.setAttribute("value", report.getId().toString()); form.appendChild(idField); RootPanel.getBodyElement().appendChild(form); form.submit(); form.removeFromParent(); } }); toolBar.add(new SeparatorToolItem()); } // Key question info final Label keyQuestionLabel = keyQuestionState.getLabel(); toolBar.add(keyQuestionLabel); toolBar.add(new SeparatorToolItem()); // Overview mode final Button foldButton = new Button(I18N.CONSTANTS.reportOverviewMode()); foldButton.addListener(Events.Select, new Listener<BaseEvent>() { @Override public void handleEvent(BaseEvent be) { root.expand(true); root.fold(true); } }); // Expanded mode final Button expandButton = new Button(I18N.CONSTANTS.reportFullMode()); expandButton.addListener(Events.Select, new Listener<BaseEvent>() { @Override public void handleEvent(BaseEvent be) { root.expand(true); } }); toolBar.add(foldButton); toolBar.add(expandButton); if (report.isDraft()) { toolBar.add(new SeparatorToolItem()); createRichTextToolbar(toolBar); } flowPanel.add(root); reportPanel.add(flowPanel); reportPanel.setTopComponent(toolBar); // Display mainPanel.add(reportPanel, new BorderLayoutData(LayoutRegion.CENTER)); mainPanel.layout(); mainPanel.unmask(); }
From source file:org.sigmah.client.page.project.reports.ProjectReportsView.java
License:Open Source License
public void setReport(final ProjectReportDTO report) { mainPanel.removeAll();/*from w ww. j av a2s . c om*/ // currentReport = report; if (autoSaveTimer != null) { autoSaveTimer.cancel(); autoSaveTimer = null; } if (report == null) { currentReportId = -1; return; } currentReportId = report.getId(); // Preparing the view for the new report textAreas.clear(); oldContents.clear(); keyQuestionState.clear(); // Title bar final ContentPanel reportPanel = new ContentPanel(new FitLayout()); reportPanel.setScrollMode(Scroll.AUTOY); reportPanel.setHeading(report.getName()); final ToolButton closeButton = new ToolButton("x-tool-close"); closeButton.addListener(Events.Select, new Listener<BaseEvent>() { @Override public void handleEvent(BaseEvent be) { final ProjectState state = new ProjectState(currentState.getProjectId()); state.setCurrentSection(currentState.getCurrentSection()); state.setArgument("-1"); eventBus.fireEvent(new NavigationEvent(NavigationHandler.NavigationRequested, state, null)); } }); reportPanel.getHeader().addTool(closeButton); // Report container final FlowPanel flowPanel = new FlowPanel(); // Report final FoldPanel root = new FoldPanel(); root.addStyleName("project-report"); final List<ProjectReportSectionDTO> sections = report.getSections(); final StringBuilder prefix = new StringBuilder(); for (int index = 0; index < sections.size(); index++) { final ProjectReportSectionDTO section = sections.get(index); prefix.append(index + 1).append('.'); displaySection(section, root, prefix, 1, report.isDraft()); prefix.setLength(0); } // Toolbar final ToolBar toolBar = new ToolBar(); final IconImageBundle icons = GWT.create(IconImageBundle.class); if (report.isDraft()) { // Draft banner final HorizontalPanel header = new HorizontalPanel(); header.addStyleName("project-report-draft"); // The "Personal Draft" final Label personalDraft = new Label(I18N.MESSAGES.personalDraft()); personalDraft.addStyleName("project-report-personalDraft"); final DateTimeFormat dateFormat = DateTimeFormat.getMediumDateFormat(); final DateTimeFormat timeFormat = DateTimeFormat.getMediumTimeFormat(); // The label showing the last changed time final Label draftLastChangedTime = new Label(I18N.MESSAGES.reportDraftLastChanged( dateFormat.format(report.getLastEditDate()), timeFormat.format(report.getLastEditDate()))); // Add the two labels header.add(personalDraft); header.add(draftLastChangedTime); final Button cancelButton = new Button(I18N.CONSTANTS.delete()); final Button sendButton = new Button(I18N.CONSTANTS.sendReportDraft()); cancelButton.addSelectionListener(new SelectionListener<ButtonEvent>() { @Override public void componentSelected(ButtonEvent ce) { final RemoveProjectReportDraft removeDraft = new RemoveProjectReportDraft( report.getVersionId()); final GetProjectReport getReport = new GetProjectReport(report.getId()); final AsyncCallback<VoidResult> callback = AsyncCallbacks.emptyCallback(); dispatcher.execute(removeDraft, null, callback); dispatcher.execute(getReport, null, new AsyncCallback<ProjectReportDTO>() { @Override public void onFailure(Throwable caught) { MessageBox.alert(I18N.CONSTANTS.projectTabReports(), I18N.CONSTANTS.reportEditError(), null); } @Override public void onSuccess(ProjectReportDTO result) { Notification.show(I18N.CONSTANTS.projectTabReports(), I18N.CONSTANTS.reportEditCancelSuccess()); setReport(result); } }); } }); sendButton.addSelectionListener(new SelectionListener<ButtonEvent>() { @Override public void componentSelected(ButtonEvent ce) { final HashMap<String, Object> changes = new HashMap<String, Object>(); changes.put("currentPhase", phaseName); for (final Map.Entry<Integer, RichTextArea> entry : textAreas.entrySet()) changes.put(entry.getKey().toString(), entry.getValue().getHTML()); final UpdateEntity updateEntity = new UpdateEntity("ProjectReport", report.getVersionId(), changes); final PromoteProjectReportDraft promoteDraft = new PromoteProjectReportDraft(report.getId(), report.getVersionId()); final AsyncCallback<VoidResult> callback = AsyncCallbacks.emptyCallback(); dispatcher.execute(updateEntity, null, callback); dispatcher.execute(promoteDraft, null, new AsyncCallback<ProjectReportDTO>() { @Override public void onFailure(Throwable caught) { MessageBox.alert(I18N.CONSTANTS.projectTabReports(), I18N.CONSTANTS.reportSaveError(), null); } @Override public void onSuccess(ProjectReportDTO result) { Notification.show(I18N.CONSTANTS.projectTabReports(), I18N.CONSTANTS.reportSaveSuccess()); setReport(result); } }); } }); final HorizontalPanel buttons = new HorizontalPanel(); buttons.setSpacing(5); buttons.setVerticalAlignment(HasVerticalAlignment.ALIGN_MIDDLE); buttons.addStyleName("project-report-draft-button"); buttons.add(cancelButton); buttons.add(sendButton); header.add(buttons); header.setCellHorizontalAlignment(buttons, HasHorizontalAlignment.ALIGN_RIGHT); flowPanel.add(header); // Save action final Listener<BaseEvent> saveListener = new Listener<BaseEvent>() { @Override public void handleEvent(BaseEvent be) { final HashMap<String, String> changes = new HashMap<String, String>(); changes.put("currentPhase", phaseName); for (final Map.Entry<Integer, RichTextArea> entry : textAreas.entrySet()) changes.put(entry.getKey().toString(), entry.getValue().getHTML()); final UpdateEntity updateEntity = new UpdateEntity("ProjectReport", report.getVersionId(), (Map<String, Object>) (Map<String, ?>) changes); dispatcher.execute(updateEntity, null, new AsyncCallback<VoidResult>() { @Override public void onFailure(Throwable caught) { MessageBox.alert(I18N.CONSTANTS.projectTabReports(), I18N.CONSTANTS.reportSaveError(), null); } @Override public void onSuccess(VoidResult result) { Notification.show(I18N.CONSTANTS.projectTabReports(), I18N.CONSTANTS.reportSaveSuccess()); final Date now = new Date(); header.clear(); draftLastChangedTime.setText(I18N.MESSAGES .reportDraftLastChanged(dateFormat.format(now), timeFormat.format(now))); personalDraft.setText(I18N.MESSAGES.personalDraft()); header.add(personalDraft); header.add(draftLastChangedTime); header.add(buttons); boolean found = false; for (int index = 0; !found && index < store.getCount(); index++) { final ReportReference reference = store.getAt(index); if (reference.getId().equals(report.getId())) { store.remove(reference); reference.setEditorName(authentication.getUserShortName()); reference.setPhaseName(phaseName); reference.setLastEditDate(new Date()); store.add(reference); found = true; } } updateChanges(); autoSaveTimer.cancel(); autoSaveTimer.schedule(AUTO_SAVE_PERIOD); } }); } }; // Save button final Button saveButton = new Button(I18N.CONSTANTS.save(), icons.save()); saveButton.addListener(Events.Select, saveListener); toolBar.add(saveButton); toolBar.add(new SeparatorToolItem()); // Auto save timer autoSaveTimer = new Timer() { @Override public void run() { saveListener.handleEvent(null); } }; autoSaveTimer.schedule(AUTO_SAVE_PERIOD); } else { final Button editReportButton = new Button(I18N.CONSTANTS.edit(), icons.editPage()); if (ProfileUtils.isGranted(authentication, GlobalPermissionEnum.EDIT_PROJECT)) { toolBar.add(editReportButton); } editReportButton.addSelectionListener(new SelectionListener<ButtonEvent>() { @Override public void componentSelected(ButtonEvent ce) { // Draft creation final HashMap<String, Object> properties = new HashMap<String, Object>(); properties.put("reportId", report.getId()); properties.put("phaseName", phaseName); final CreateEntity createDraft = new CreateEntity("ProjectReportDraft", properties); // Retrieving the new draft final GetProjectReport getReportDraft = new GetProjectReport(report.getId()); final AsyncCallback<CreateResult> callback = AsyncCallbacks.emptyCallback(); dispatcher.execute(createDraft, null, callback); dispatcher.execute(getReportDraft, null, new AsyncCallback<ProjectReportDTO>() { @Override public void onFailure(Throwable caught) { MessageBox.alert(I18N.CONSTANTS.projectTabReports(), I18N.CONSTANTS.reportEditError(), null); } @Override public void onSuccess(ProjectReportDTO result) { setReport(result); } }); } }); final Button exportReportButton = new Button(I18N.CONSTANTS.exportToWord(), icons.msword()); toolBar.add(exportReportButton); exportReportButton.addSelectionListener(new SelectionListener<ButtonEvent>() { @Override public void componentSelected(ButtonEvent ce) { final FormElement form = FormElement.as(DOM.createForm()); form.setAction(GWT.getModuleBaseURL() + "export"); form.setTarget("_downloadFrame"); form.setMethod("POST"); final InputElement typeField = InputElement.as(DOM.createInputText()); typeField.setAttribute("type", "hidden"); typeField.setName(ExportUtils.PARAM_EXPORT_TYPE); typeField.setValue(ExportUtils.ExportType.PROJECT_REPORT.toString()); form.appendChild(typeField); final InputElement formatField = InputElement.as(DOM.createInputText()); formatField.setAttribute("type", "hidden"); formatField.setName(ExportUtils.PARAM_EXPORT_FORMAT); formatField.setValue(ExportUtils.ExportFormat.MS_WORD.name()); form.appendChild(formatField); final InputElement idField = InputElement.as(DOM.createInputText()); idField.setAttribute("type", "hidden"); idField.setName(ExportUtils.PARAM_EXPORT_PROJECT_ID); idField.setAttribute("value", report.getId().toString()); form.appendChild(idField); RootPanel.getBodyElement().appendChild(form); form.submit(); form.removeFromParent(); } }); toolBar.add(new SeparatorToolItem()); } // Key question info final Label keyQuestionLabel = keyQuestionState.getLabel(); toolBar.add(keyQuestionLabel); toolBar.add(new SeparatorToolItem()); // Overview mode final Button foldButton = new Button(I18N.CONSTANTS.reportOverviewMode()); foldButton.addListener(Events.Select, new Listener<BaseEvent>() { @Override public void handleEvent(BaseEvent be) { root.expand(true); root.fold(true); } }); // Expanded mode final Button expandButton = new Button(I18N.CONSTANTS.reportFullMode()); expandButton.addListener(Events.Select, new Listener<BaseEvent>() { @Override public void handleEvent(BaseEvent be) { root.expand(true); } }); toolBar.add(foldButton); toolBar.add(expandButton); if (report.isDraft()) { toolBar.add(new SeparatorToolItem()); createRichTextToolbar(toolBar); } flowPanel.add(root); reportPanel.add(flowPanel); reportPanel.setTopComponent(toolBar); // Display mainPanel.add(reportPanel, new BorderLayoutData(LayoutRegion.CENTER)); mainPanel.layout(); mainPanel.unmask(); }