private Widget createValuePairItem( final Annotation annotation, final AnnotationValuePairDefinition valuePairDefinition, final AnnotationSource annotationSource) { final Row valuePairRow = new Row(); final FormGroup formGroup = new FormGroup(); valuePairRow.add(formGroup); final FormLabel formLabel = new FormLabel(); formLabel.addStyleName(ColumnSize.MD_3.getCssName()); formLabel.setText(valuePairDefinition.getName()); formGroup.add(formLabel); final Column column = new Column(ColumnSize.MD_9); formGroup.add(column); final TextBox content = new TextBox(); column.add(content); final String valuePairString = getValuePairStringValue(annotation, valuePairDefinition, annotationSource); content.setText(valuePairString); content.setReadOnly(true); content.setTitle(valuePairString); final Button editButton = new Button( Constants.INSTANCE.advanced_domain_annotation_list_editor_action_edit(), new ClickHandler() { @Override public void onClick(ClickEvent event) { presenter.onEditValuePair(annotation, valuePairDefinition.getName()); } }); editButton.setEnabled(!readonly); editButton.setIcon(IconType.EDIT); final Button clearButton = new Button( Constants.INSTANCE.advanced_domain_annotation_list_editor_action_clear(), new ClickHandler() { @Override public void onClick(ClickEvent event) { presenter.onClearValuePair(annotation, valuePairDefinition.getName()); } }); clearButton.setEnabled(!readonly); clearButton.setIcon(IconType.ERASER); final FormGroup formGroupButton = new FormGroup(); formGroupButton.add(editButton); formGroupButton.add(clearButton); final Column columnButton = new Column(ColumnSize.MD_9); columnButton.setOffset(ColumnOffset.MD_3); columnButton.add(formGroupButton); valuePairRow.add(columnButton); return valuePairRow; }
private void addRemoveRowColumn() { Column<PropertyRow, String> column = new Column<PropertyRow, String>( new ButtonCell(IconType.TRASH, ButtonType.DANGER, ButtonSize.SMALL)) { @Override public String getValue(PropertyRow propertyRow) { return Constants.INSTANCE.persistence_unit_property_grid_action_delete(); } }; column.setFieldUpdater( new FieldUpdater<PropertyRow, String>() { @Override public void update(int index, PropertyRow propertyRow, String value) { if (!readOnly) { onRemoveProperty(propertyRow); } } }); dataGrid.addColumn( column, Constants.INSTANCE.persistence_unit_property_grid_property_action_column()); dataGrid.setColumnWidth(column, 10, Style.Unit.PCT); }
protected void rename() { if (isDirty()) { YesNoCancelPopup yesNoCancelPopup = YesNoCancelPopup.newYesNoCancelPopup( CommonConstants.INSTANCE.Information(), Constants.INSTANCE.modelEditor_confirm_save_before_rename(), new Command() { @Override public void execute() { rename(true); } }, new Command() { @Override public void execute() { rename(false); } }, new Command() { @Override public void execute() { // do nothing. } }); yesNoCancelPopup.setClosable(false); yesNoCancelPopup.show(); } else { // just rename. rename(false); } }
@Override public void onSourceTabSelected() { context.setEditionMode(DataModelerContext.EditionMode.SOURCE_MODE); if (context.isParsed() && context.isEditorChanged()) { // If there are changes in the ui the source must be regenerated on server side. view.showLoading(); modelerService .call( new RemoteCallback<GenerationResult>() { @Override public void callback(GenerationResult result) { view.hideBusyIndicator(); setSource(result.getSource()); updateSource(result.getSource()); context.setEditionStatus(DataModelerContext.EditionStatus.NO_CHANGES); dataModelerWBContext.setActiveContext(context); } }, new DataModelerErrorCallback(Constants.INSTANCE.modelEditor_loading_error())) .updateSource( getSource(), versionRecordManager.getCurrentPath(), context.getDataObject()); } else { if (!isOverviewTabSelected()) { context.setEditionStatus(DataModelerContext.EditionStatus.NO_CHANGES); } updateSource(javaSourceEditor.getContent()); dataModelerWBContext.setActiveContext(context); } }
private void onDataObjectDeleted(@Observes DataObjectDeletedEvent event) { if (context != null && event.isFrom(context.getCurrentProject()) && event.getCurrentDataObject() != null && context.isParsed() && isEditorTabSelected() && context.getDataObject() != null && !context .getDataObject() .getClassName() .equals(event.getCurrentDataObject().getClassName())) { // check deleted object is referenced by current data object. if (validatorService.isReferencedByCurrentObject( event.getCurrentDataObject(), context.getDataObject())) { notification.fire( new NotificationEvent( Constants.INSTANCE.modelEditor_notification_dataObject_referenced_has_been_deleted( event.getCurrentDataObject().getClassName(), context.getDataObject().getClassName()))); } else if (!getDataModel().isExternal(event.getCurrentDataObject().getClassName())) { getDataModel().removeDataObject(event.getCurrentDataObject().getClassName()); view.refreshTypeLists(true); } } }
public PersistenceUnitPropertyGridViewImpl() { initWidget(uiBinder.createAndBindUi(this)); dataGrid.setEmptyTableCaption( Constants.INSTANCE.persistence_unit_property_grid_no_properties_message()); dataGrid.setToolBarVisible(false); addPropertyNameColumn(); addPropertyValueColumn(); addRemoveRowColumn(); }
private String getValuePairStringValue( Annotation annotation, AnnotationValuePairDefinition valuePairDefinition, AnnotationSource annotationSource) { Object value = annotation.getValue(valuePairDefinition.getName()); String strValue; if (value == null) { strValue = Constants.INSTANCE.advanced_domain_annotation_list_editor_message_value_not_set(); } else { strValue = annotationSource != null ? annotationSource.getValuePairSource(valuePairDefinition.getName()) : null; if (strValue == null) { strValue = Constants.INSTANCE .advanced_domain_annotation_list_editor_message_source_code_not_available(); } } return strValue; }
private void initContext(final ObservablePath path) { context = new DataModelerContext(editorId); modelerService .call( new RemoteCallback<List<PropertyType>>() { @Override public void callback(List<PropertyType> baseTypes) { context.init(baseTypes); } }, new DataModelerErrorCallback( Constants.INSTANCE.modelEditor_propertyType_loading_error())) .getBasePropertyTypes(); }
private String propertyTypeDisplay(ObjectProperty property) { String displayName = property.getClassName(); if (property.isBaseType()) { displayName = DataModelerUtils.extractClassName(displayName); } else { String label = getContext().getHelper().getObjectLabelByClassName(displayName); if (label != null && !"".equals(label)) { displayName = label; } } if (property.isMultiple()) { displayName += " [" + Constants.INSTANCE.objectBrowser_typeLabelMultiple() + "]"; } return displayName; }
private void addPropertyNameColumn() { Column<PropertyRow, String> column = new Column<PropertyRow, String>(new EditTextCell()) { @Override public String getValue(PropertyRow propertyRow) { if (propertyRow.getName() != null) { return propertyRow.getName(); } else { return ""; } } }; column.setFieldUpdater( new PropertyNameFieldUpdater<PropertyRow, String>((EditTextCell) column.getCell())); dataGrid.addColumn( column, Constants.INSTANCE.persistence_unit_property_grid_property_name_column()); dataGrid.setColumnWidth(column, 45, Style.Unit.PCT); }
@Override protected void loadContent() { modelerService .call( new RemoteCallback<Map<String, AnnotationDefinition>>() { @Override public void callback(final Map<String, AnnotationDefinition> defs) { context.setAnnotationDefinitions(defs); modelerService .call(getLoadModelSuccessCallback(), getNoSuchFileExceptionErrorCallback()) .loadContent(versionRecordManager.getCurrentPath()); } }, new DataModelerErrorCallback( Constants.INSTANCE.modelEditor_annotationDef_loading_error())) .getAnnotationDefinitions(); }
public DataObjectBrowser() { initWidget(uiBinder.createAndBindUi(this)); objectButton.addClickHandler( new ClickHandler() { @Override public void onClick(ClickEvent event) { selectCurrentObject(true); } }); dataObjectPropertiesProvider.setList(new ArrayList<ObjectProperty>()); // Init data objects table dataObjectPropertiesTable.setEmptyTableWidget( new Label(Constants.INSTANCE.objectBrowser_emptyTable())); // Init property name column final TextColumn<ObjectProperty> propertyNameColumn = new TextColumn<ObjectProperty>() { @Override public void render(Cell.Context context, ObjectProperty object, SafeHtmlBuilder sb) { SafeHtml startDiv = new SafeHtml() { @Override public String asString() { return "<div style=\"cursor: pointer;\">"; } }; SafeHtml endDiv = new SafeHtml() { @Override public String asString() { return "</div>"; } }; sb.append(startDiv); super.render(context, object, sb); sb.append(endDiv); } @Override public String getValue(final ObjectProperty objectProperty) { return objectProperty.getName(); } }; propertyNameColumn.setSortable(true); dataObjectPropertiesTable.addColumn( propertyNameColumn, Constants.INSTANCE.objectBrowser_columnName()); // dataObjectPropertiesTable.setColumnWidth(propertyNameColumn, 100, Style.Unit.PX); dataObjectPropertiesTable.setColumnWidth(propertyNameColumn, 30, Style.Unit.PCT); ColumnSortEvent.ListHandler<ObjectProperty> propertyNameColHandler = new ColumnSortEvent.ListHandler<ObjectProperty>(dataObjectPropertiesProvider.getList()); propertyNameColHandler.setComparator(propertyNameColumn, new ObjectPropertyComparator("name")); dataObjectPropertiesTable.addColumnSortHandler(propertyNameColHandler); // Init property Label column final TextColumn<ObjectProperty> propertyLabelColumn = new TextColumn<ObjectProperty>() { @Override public void render(Cell.Context context, ObjectProperty object, SafeHtmlBuilder sb) { SafeHtml startDiv = new SafeHtml() { @Override public String asString() { return "<div style=\"cursor: pointer;\">"; } }; SafeHtml endDiv = new SafeHtml() { @Override public String asString() { return "</div>"; } }; sb.append(startDiv); super.render(context, object, sb); sb.append(endDiv); } @Override public String getValue(final ObjectProperty objectProperty) { return AnnotationValueHandler.getStringValue( objectProperty, MainDomainAnnotations.LABEL_ANNOTATION, MainDomainAnnotations.VALUE_PARAM); } }; propertyLabelColumn.setSortable(true); dataObjectPropertiesTable.addColumn( propertyLabelColumn, Constants.INSTANCE.objectBrowser_columnLabel()); dataObjectPropertiesTable.setColumnWidth(propertyLabelColumn, 30, Style.Unit.PCT); ColumnSortEvent.ListHandler<ObjectProperty> propertyLabelColHandler = new ColumnSortEvent.ListHandler<ObjectProperty>(dataObjectPropertiesProvider.getList()); propertyNameColHandler.setComparator( propertyLabelColumn, new ObjectPropertyComparator("label")); dataObjectPropertiesTable.addColumnSortHandler(propertyLabelColHandler); // Init property type browsing column ClickableImageResourceCell typeImageCell = new ClickableImageResourceCell(true, 25); // final TooltipCellDecorator<ImageResource> typeImageDecorator = new // TooltipCellDecorator<ImageResource>( typeImageCell ); // typeImageDecorator.setText( // Constants.INSTANCE.objectBrowser_action_goToDataObjectDefinition() ); final Column<ObjectProperty, ImageResource> typeImageColumn = new Column<ObjectProperty, ImageResource>(typeImageCell) { @Override public ImageResource getValue(final ObjectProperty property) { if (!property.isBaseType() && !getDataObject().getClassName().equals(property.getClassName()) && !getDataModel().isExternal(property.getClassName())) { return ImagesResources.INSTANCE.BrowseObject(); } else { return null; } } }; typeImageColumn.setFieldUpdater( new FieldUpdater<ObjectProperty, ImageResource>() { public void update( final int index, final ObjectProperty property, final ImageResource value) { onTypeCellSelection(property); } }); dataObjectPropertiesTable.addColumn(typeImageColumn); // Init property type column final TextColumn<ObjectProperty> propertyTypeColumn = new TextColumn<ObjectProperty>() { @Override public void render(Cell.Context context, ObjectProperty object, SafeHtmlBuilder sb) { SafeHtml startDiv = new SafeHtml() { @Override public String asString() { return "<div style=\"cursor: pointer;\">"; } }; SafeHtml endDiv = new SafeHtml() { @Override public String asString() { return "</div>"; } }; sb.append(startDiv); super.render(context, object, sb); sb.append(endDiv); } @Override public String getValue(final ObjectProperty objectProperty) { return propertyTypeDisplay(objectProperty); } }; propertyTypeColumn.setSortable(true); dataObjectPropertiesTable.addColumn( propertyTypeColumn, Constants.INSTANCE.objectBrowser_columnType()); dataObjectPropertiesTable.setColumnWidth(propertyTypeColumn, 40, Style.Unit.PCT); // Init delete column final Column<ObjectProperty, String> deletePropertyColumnImg = new Column<ObjectProperty, String>(deleteCell) { @Override public String getValue(final ObjectProperty global) { return "Remove"; } }; deletePropertyColumnImg.setFieldUpdater( new FieldUpdater<ObjectProperty, String>() { public void update(final int index, final ObjectProperty property, final String value) { if (!isReadonly()) { checkAndDeleteDataObjectProperty(property, index); } } }); dataObjectPropertiesTable.addColumn(deletePropertyColumnImg); ColumnSortEvent.ListHandler<ObjectProperty> propertyTypeColHandler = new ColumnSortEvent.ListHandler<ObjectProperty>(dataObjectPropertiesProvider.getList()); propertyTypeColHandler.setComparator( propertyTypeColumn, new ObjectPropertyComparator("className")); dataObjectPropertiesTable.addColumnSortHandler(propertyTypeColHandler); dataObjectPropertiesTable.getColumnSortList().push(propertyNameColumn); // Init the selection model SingleSelectionModel<ObjectProperty> selectionModel = new SingleSelectionModel<ObjectProperty>(); dataObjectPropertiesTable.setSelectionModel(selectionModel); selectionModel.addSelectionChangeHandler( new SelectionChangeEvent.Handler() { @Override public void onSelectionChange(SelectionChangeEvent event) { ObjectProperty selectedProperty = ((SingleSelectionModel<ObjectProperty>) dataObjectPropertiesTable.getSelectionModel()) .getSelectedObject(); notifyFieldSelected(selectedProperty); } }); dataObjectPropertiesTable.setKeyboardSelectionPolicy( HasKeyboardSelectionPolicy.KeyboardSelectionPolicy.BOUND_TO_SELECTION); dataObjectPropertiesTable.addCellPreviewHandler( new CellPreviewEvent.Handler<ObjectProperty>() { @Override public void onCellPreview(CellPreviewEvent<ObjectProperty> event) { if (showingObject && "click".equals(event.getNativeEvent().getType())) { int selectedRow = dataObjectPropertiesTable.getKeyboardSelectedRow(); if (lastSelectedRow >= 0 && lastSelectedRow == selectedRow) { ObjectProperty selectedProperty = dataObjectPropertiesProvider.getList().get(selectedRow); ((SingleSelectionModel<ObjectProperty>) dataObjectPropertiesTable.getSelectionModel()) .setSelected(selectedProperty, true); } showingObject = false; } } }); dataObjectPropertiesProvider.addDataDisplay(dataObjectPropertiesTable); dataObjectPropertiesProvider.refresh(); newPropertyButton.setIcon(IconType.PLUS); setReadonly(true); }
private void saveFile(final JavaTypeInfo newTypeInfo) { String currentFileName = DataModelerUtils.extractSimpleFileName(versionRecordManager.getPathToLatest()); if (hasPackageNameChanged(newTypeInfo)) { YesNoCancelPopup yesNoCancelPopup = YesNoCancelPopup.newYesNoCancelPopup( CommonConstants.INSTANCE.Information(), Constants.INSTANCE.modelEditor_confirm_file_package_refactoring( newTypeInfo.getPackageName()), new Command() { @Override public void execute() { saveOperationService.save( versionRecordManager.getPathToLatest(), getSaveCommand(newTypeInfo, versionRecordManager.getPathToLatest())); } }, Constants.INSTANCE.modelEditor_action_yes_refactor_directory(), ButtonType.PRIMARY, new Command() { @Override public void execute() { saveOperationService.save( versionRecordManager.getPathToLatest(), getSaveCommand(null, versionRecordManager.getPathToLatest())); } }, Constants.INSTANCE.modelEditor_action_no_dont_refactor_directory(), ButtonType.DANGER, new Command() { @Override public void execute() { // do nothing } }, null, null); yesNoCancelPopup.setClosable(false); yesNoCancelPopup.show(); } else if (hasFileNameChanged(newTypeInfo, currentFileName)) { YesNoCancelPopup yesNoCancelPopup = YesNoCancelPopup.newYesNoCancelPopup( CommonConstants.INSTANCE.Information(), Constants.INSTANCE.modelEditor_confirm_file_name_refactoring(newTypeInfo.getName()), new Command() { @Override public void execute() { saveOperationService.save( versionRecordManager.getPathToLatest(), getSaveCommand(newTypeInfo, versionRecordManager.getPathToLatest())); } }, Constants.INSTANCE.modelEditor_action_yes_refactor_file_name(), ButtonType.PRIMARY, new Command() { @Override public void execute() { saveOperationService.save( versionRecordManager.getPathToLatest(), getSaveCommand(null, versionRecordManager.getPathToLatest())); } }, Constants.INSTANCE.modelEditor_action_no_dont_refactor_file_name(), ButtonType.DANGER, new Command() { @Override public void execute() { // do nothing } }, null, null); yesNoCancelPopup.setClosable(false); yesNoCancelPopup.show(); } else { new SaveOperationService() .save( versionRecordManager.getPathToLatest(), getSaveCommand(null, versionRecordManager.getPathToLatest())); } }
@Override public void onEditTabSelected() { boolean doParsing = false; if (context.isSourceChanged()) { // if there has been changes in the source we should try to parse the file and build the data // object again. doParsing = true; } else if (context.isNotParsed()) { // uncommon case, the file wasn't parsed yet. doParsing = true; } if (doParsing) { view.showLoading(); // If there are changes in the source, we must try to parse the file. modelerService .call( new RemoteCallback<GenerationResult>() { @Override public void callback(GenerationResult result) { view.hideBusyIndicator(); if (result.hasErrors()) { showParseErrorsDialog( Constants.INSTANCE.modelEditor_message_file_parsing_errors(), true, result.getErrors(), new Command() { @Override public void execute() { // return to the source tab setSelectedTab(EDITABLE_SOURCE_TAB); context.setParseStatus(DataModelerContext.ParseStatus.PARSE_ERRORS); updateEditorView(null); context.setDataObject(null); context.setEditionMode(DataModelerContext.EditionMode.SOURCE_MODE); dataModelerWBContext.setActiveContext(context); } }); } else { // ok, we can reload the editor tab. context.setParseStatus(DataModelerContext.ParseStatus.PARSED); updateEditorView(result.getDataObject()); context.setEditionStatus(DataModelerContext.EditionStatus.NO_CHANGES); context.setDataObject(result.getDataObject()); context.setObjectProperty(null); context.setEditionMode(DataModelerContext.EditionMode.GRAPHICAL_MODE); view.setContext(context); cleanSystemMessages(getCurrentMessageType()); dataModelerWBContext.setActiveContext(context); } } }, new DataModelerErrorCallback(Constants.INSTANCE.modelEditor_loading_error())) .updateDataObject( context.getDataObject(), getSource(), versionRecordManager.getCurrentPath()); } else { // no changes in the source tab if (!isOverviewTabSelected()) { context.setEditionStatus(DataModelerContext.EditionStatus.NO_CHANGES); } if (context.isParseErrors()) { // there are parse errors, the editor tab couldn't be loaded. (errors are already // published) showParseErrorsDialog( Constants.INSTANCE.modelEditor_message_file_parsing_errors(), false, null, new Command() { @Override public void execute() { context.setEditionMode(DataModelerContext.EditionMode.SOURCE_MODE); dataModelerWBContext.setActiveContext(context); setSelectedTab(EDITABLE_SOURCE_TAB); } }); } else { context.setEditionMode(DataModelerContext.EditionMode.GRAPHICAL_MODE); dataModelerWBContext.setActiveContext(context); } } }