private Canvas getActionLayout() { EnhancedVLayout actionLayout = new EnhancedVLayout(10); IButton deleteButton = new EnhancedIButton(MSG.common_button_delete(), ButtonColor.RED); // deleteButton.setIcon("subsystems/bundle/BundleVersionAction_Delete_16.png"); deleteButton.addClickHandler( new ClickHandler() { public void onClick(ClickEvent clickEvent) { SC.ask( MSG.view_bundle_version_deleteConfirm(), new BooleanCallback() { public void execute(Boolean aBoolean) { if (aBoolean) { bundleManager.deleteBundleVersion( version.getId(), false, new AsyncCallback<Void>() { public void onFailure(Throwable caught) { CoreGUI.getErrorHandler() .handleError( MSG.view_bundle_version_deleteFailure(version.getVersion()), caught); } public void onSuccess(Void result) { CoreGUI.getMessageCenter() .notify( new Message( MSG.view_bundle_version_deleteSuccessful( version.getVersion()), Message.Severity.Info)); // Bundle version is deleted, go back to main bundle view CoreGUI.goToView( LinkManager.getBundleVersionLink(version.getBundle().getId(), 0), true); } }); } } }); } }); actionLayout.addMember(deleteButton); if (!canDelete) { deleteButton.setDisabled(true); } return actionLayout; }
@Override protected void configureTable() { updateSelectionStyle(); getListGrid() .addCellClickHandler( new CellClickHandler() { public void onCellClick(CellClickEvent event) { updateSelectionStyle(); } }); List<ListGridField> fields = createFields(); setListGridFields(fields.toArray(new ListGridField[fields.size()])); addTableAction(extendLocatorId("New"), MSG.common_button_new(), createNewAction()); addTableAction( extendLocatorId("Delete"), MSG.common_button_delete(), getDeleteConfirmMessage(), createDeleteAction()); super.configureTable(); }
@Override protected void configureTable() { getListGrid().setEmptyMessage(MSG.view_messageCenter_noRecentMessages()); updateTitleCanvas( MSG.view_messageCenter_lastNMessages( String.valueOf(CoreGUI.getMessageCenter().getMaxMessages()))); ListGridField severityField = new ListGridField(FIELD_SEVERITY); severityField.setType(ListGridFieldType.ICON); severityField.setAlign(Alignment.CENTER); severityField.setShowValueIconOnly(true); HashMap<String, String> severityIcons = new HashMap<String, String>(5); severityIcons.put(Severity.Blank.name(), getSeverityIcon(Severity.Blank)); severityIcons.put(Severity.Info.name(), getSeverityIcon(Severity.Info)); severityIcons.put(Severity.Warning.name(), getSeverityIcon(Severity.Warning)); severityIcons.put(Severity.Error.name(), getSeverityIcon(Severity.Error)); severityIcons.put(Severity.Fatal.name(), getSeverityIcon(Severity.Fatal)); severityField.setValueIcons(severityIcons); severityField.setShowHover(true); severityField.setHoverCustomizer( new HoverCustomizer() { @Override public String hoverHTML(Object value, ListGridRecord record, int rowNum, int colNum) { try { Severity severity = ((Message) record.getAttributeAsObject(FIELD_OBJECT)).getSeverity(); switch (severity) { case Info: return MSG.common_severity_info(); case Warning: return MSG.common_severity_warn(); case Error: return MSG.common_severity_error(); case Fatal: return MSG.common_severity_fatal(); } } catch (Throwable e) { Log.error("Cannot get severity hover", e); } return null; } }); severityField.setSortNormalizer( new SortNormalizer() { @Override public Object normalize(ListGridRecord record, String fieldName) { try { Severity severity = ((Message) record.getAttributeAsObject(FIELD_OBJECT)).getSeverity(); return Integer.valueOf(severity.ordinal()); } catch (Throwable e) { Log.error("Cannot get sort nomalizer", e); } return Integer.valueOf(0); } }); ListGridField timeField = new ListGridField(FIELD_TIME, MSG.view_messageCenter_messageTime()); timeField.setType(ListGridFieldType.TIME); timeField.setAttribute("displayFormat", TimeFormatter.TOPADDEDTIME); timeField.setAlign(Alignment.LEFT); timeField.setShowHover(true); timeField.setHoverCustomizer(TimestampCellFormatter.getHoverCustomizer(FIELD_TIME)); ListGridField messageField = new ListGridField(FIELD_CONCISEMESSAGE, MSG.common_title_message()); severityField.setWidth(25); timeField.setWidth("15%"); messageField.setWidth("*"); getListGrid().setFields(severityField, timeField, messageField); setListGridDoubleClickHandler( new DoubleClickHandler() { @Override public void onDoubleClick(DoubleClickEvent event) { try { ListGrid listGrid = (ListGrid) event.getSource(); ListGridRecord[] selectedRows = listGrid.getSelection(); if (selectedRows != null && selectedRows.length > 0) { Message message = (Message) selectedRows[0].getAttributeAsObject( FIELD_OBJECT); // show the first selected showDetails(message); } } catch (Throwable e) { Log.error("Cannot show details for message", e); } } }); addTableAction( extendLocatorId("delete"), MSG.common_button_delete(), MSG.common_msg_areYouSure(), new AbstractTableAction(TableActionEnablement.ANY) { @Override public void executeAction(ListGridRecord[] selection, Object actionValue) { try { for (ListGridRecord record : selection) { Object doomed = record.getAttributeAsObject(FIELD_OBJECT); CoreGUI.getMessageCenter().getMessages().remove(doomed); } refresh(); } catch (Throwable e) { Log.error("Cannot delete messages", e); } } }); addTableAction( extendLocatorId("deleteAll"), MSG.common_button_delete_all(), MSG.common_msg_areYouSure(), new AbstractTableAction(TableActionEnablement.ALWAYS) { @Override public void executeAction(ListGridRecord[] selection, Object actionValue) { try { CoreGUI.getMessageCenter().getMessages().clear(); refresh(); } catch (Throwable e) { Log.error("Cannot delete all messages", e); } } }); LinkedHashMap<String, Integer> maxMessagesMap = new LinkedHashMap<String, Integer>(); maxMessagesMap.put("10", Integer.valueOf("10")); maxMessagesMap.put("25", Integer.valueOf("25")); maxMessagesMap.put("50", Integer.valueOf("50")); maxMessagesMap.put("100", Integer.valueOf("100")); maxMessagesMap.put("200", Integer.valueOf("200")); addTableAction( extendLocatorId("maxMessageMenu"), MSG.view_messageCenter_maxMessages(), null, maxMessagesMap, new AbstractTableAction(TableActionEnablement.ALWAYS) { @Override public void executeAction(ListGridRecord[] selection, Object actionValue) { try { Integer maxSize = (Integer) actionValue; CoreGUI.getMessageCenter().setMaxMessages(maxSize.intValue()); updateTitleCanvas(MSG.view_messageCenter_lastNMessages(maxSize.toString())); refresh(); } catch (Throwable e) { Log.error("Cannot set max messages", e); } } }); /* // TODO only for testing, remove this when done testing addTableAction(extendLocatorId("test"), "TEST MSG", null, new AbstractTableAction(TableActionEnablement.ALWAYS) { @Override public void executeAction(ListGridRecord[] selection, Object actionValue) { for (Severity severity : java.util.EnumSet.allOf(Severity.class)) { Message m = new Message(severity.name() + ':' + System.currentTimeMillis(), severity); CoreGUI.getMessageCenter().notify(m); } } }); */ // initial population of the list with current messages try { refresh(); } catch (Throwable e) { Log.error("Cannot perform initial refresh", e); } }
@Override protected void configureTable() { addTableAction( MSG.common_button_delete(), MSG.view_inventory_resources_deleteConfirm(), new AbstractTableAction(TableActionEnablement.ANY) { // only enabled if all selected are a deletable type and if the user has delete permission // on the resources. public boolean isEnabled(ListGridRecord[] selection) { boolean isEnabled = super.isEnabled(selection); if (isEnabled) { for (ListGridRecord record : selection) { ResourceComposite resComposite = (ResourceComposite) record.getAttributeAsObject("resourceComposite"); Resource res = resComposite.getResource(); if (!(isEnabled = res.getResourceType().isDeletable())) { break; } ResourcePermission resPermission = resComposite.getResourcePermission(); if (!(isEnabled = resPermission.isDeleteResource())) { break; } } } return isEnabled; } public void executeAction(ListGridRecord[] selection, Object actionValue) { int[] resourceIds = TableUtility.getIds(selection); ResourceGWTServiceAsync resourceManager = GWTServiceLookup.getResourceService(); resourceManager.deleteResources( resourceIds, new AsyncCallback<List<DeleteResourceHistory>>() { public void onFailure(Throwable caught) { if (caught instanceof CannotConnectToAgentException) { CoreGUI.getMessageCenter() .notify( new Message( MSG.view_inventory_resources_deleteFailed2(), Severity.Warning)); } else { CoreGUI.getErrorHandler() .handleError(MSG.view_inventory_resources_deleteFailed(), caught); } } public void onSuccess(List<DeleteResourceHistory> result) { CoreGUI.getMessageCenter() .notify( new Message( MSG.view_inventory_resources_deleteSuccessful(), Severity.Info)); refresh(true); // refresh the entire gui so it encompasses any relevant tree view. Don't just // call this.refresh(), // because CoreGUI.refresh is more comprehensive. CoreGUI.refresh(); } }); } }); addImportAndCreateButtons(false); super.configureTable(); }