use of org.obeonetwork.dsl.database.Column in project InformationSystem by ObeoNetwork.
the class DatabaseServices method getOrCreateColumn.
private Column getOrCreateColumn(Table table, Column referenceColumn) {
// Check if a column with the same name already exists
if (referenceColumn.getName() != null) {
for (Column column : table.getColumns()) {
if (referenceColumn.getName().equalsIgnoreCase(column.getName())) {
return column;
}
}
}
// No column found, we have to create a new one
Column newColumn = DatabaseFactory.eINSTANCE.createColumn();
table.getColumns().add(newColumn);
newColumn.setName(referenceColumn.getName());
newColumn.setType(CopierUtils.copy(referenceColumn.getType()));
return newColumn;
}
use of org.obeonetwork.dsl.database.Column in project InformationSystem by ObeoNetwork.
the class PrimaryKeyPropertiesEditionPartForm method createColumnsViewer.
/**
*/
protected TableViewer createColumnsViewer(Composite container, FormToolkit widgetFactory, AdapterFactory adapter) {
org.eclipse.swt.widgets.Table table = widgetFactory.createTable(container, SWT.FULL_SELECTION);
table.setHeaderVisible(true);
GridData gd = new GridData();
gd.grabExcessHorizontalSpace = true;
gd.horizontalAlignment = GridData.FILL;
gd.grabExcessVerticalSpace = true;
gd.verticalAlignment = GridData.FILL;
table.setLayoutData(gd);
table.setLinesVisible(true);
// Start of user code for table columns s columns definition
TableColumn name = new TableColumn(table, SWT.NONE);
name.setWidth(160);
// $NON-NLS-1$
name.setText("Label");
TableColumn type = new TableColumn(table, SWT.NONE);
type.setWidth(160);
// $NON-NLS-1$
type.setText("Type");
// End of user code
TableViewer result = new TableViewer(table);
result.setLabelProvider(new ITableLabelProvider() {
// Start of user code for table columns label provider
public String getColumnText(Object object, int columnIndex) {
AdapterFactoryLabelProvider labelProvider = new AdapterFactoryLabelProvider(adapterFactory);
if (object instanceof EObject) {
Column column = (Column) object;
switch(columnIndex) {
case 0:
return column.getName();
case 1:
return labelProvider.getText(column.getType());
}
}
// $NON-NLS-1$
return "";
}
// End of user code
public Image getColumnImage(Object element, int columnIndex) {
return null;
}
public void addListener(ILabelProviderListener listener) {
}
public void dispose() {
}
public boolean isLabelProperty(Object element, String property) {
return false;
}
public void removeListener(ILabelProviderListener listener) {
}
});
return result;
}
use of org.obeonetwork.dsl.database.Column in project InformationSystem by ObeoNetwork.
the class ForeignKeyElementPropertiesEditionComponent method initPart.
/**
* {@inheritDoc}
*
* @see org.eclipse.emf.eef.runtime.api.component.IPropertiesEditionComponent#initPart(java.lang.Object, int, org.eclipse.emf.ecore.EObject,
* org.eclipse.emf.ecore.resource.ResourceSet)
* @generated NOT
*/
public void initPart(Object key, int kind, EObject elt, ResourceSet allResource) {
setInitializing(true);
if (editingPart != null && key == partKey) {
editingPart.setContext(elt, allResource);
final ForeignKeyElement foreignKeyElement = (ForeignKeyElement) elt;
final ForeignKeyElementPropertiesEditionPart foreignKeyElementPart = (ForeignKeyElementPropertiesEditionPart) editingPart;
// init values
if (foreignKeyElement.getComments() != null && isAccessible(DatabaseViewsRepository.ForeignKeyElement.Properties.comments))
foreignKeyElementPart.setComments(EcoreUtil.convertToString(EcorePackage.Literals.ESTRING, foreignKeyElement.getComments()));
if (isAccessible(DatabaseViewsRepository.ForeignKeyElement.Properties.fKColumn)) {
// init part
fkColumnSettings = new EObjectFlatComboSettings(foreignKeyElement, DatabasePackage.eINSTANCE.getForeignKeyElement_FkColumn());
foreignKeyElementPart.initFKColumn(fkColumnSettings);
// set the button mode
foreignKeyElementPart.setFKColumnButtonMode(ButtonsModeEnum.BROWSE);
}
if (isAccessible(DatabaseViewsRepository.ForeignKeyElement.Properties.pKColumn)) {
// init part
pkColumnSettings = new EObjectFlatComboSettings(foreignKeyElement, DatabasePackage.eINSTANCE.getForeignKeyElement_PkColumn());
foreignKeyElementPart.initPKColumn(pkColumnSettings);
// set the button mode
foreignKeyElementPart.setPKColumnButtonMode(ButtonsModeEnum.BROWSE);
}
// Custom code to prevent NPE when creating new FKElement
ForeignKeyElement fkElt = (ForeignKeyElement) semanticObject;
if (fkElt.getFkColumn() != null) {
if (sourceTableSettings.getValue() != null && isAccessible(DatabaseViewsRepository.ForeignKeyElement.Properties.sourceTable))
foreignKeyElementPart.setSourceTable(EEFConverterUtil.convertToString(EcorePackage.Literals.ESTRING, sourceTableSettings.getValue()));
} else {
EObject container = fkElt.eContainer();
if (container instanceof ForeignKey) {
Table table = ((ForeignKey) container).getSourceTable();
if (table != null) {
foreignKeyElementPart.setSourceTable(table.getName());
}
}
}
if (fkElt.getPkColumn() != null) {
if (targetTableSettings.getValue() != null && isAccessible(DatabaseViewsRepository.ForeignKeyElement.Properties.targetTable))
foreignKeyElementPart.setTargetTable(EEFConverterUtil.convertToString(EcorePackage.Literals.ESTRING, targetTableSettings.getValue()));
} else {
EObject container = fkElt.eContainer();
if (container instanceof ForeignKey) {
Table table = ((ForeignKey) container).getTargetTable();
if (table != null) {
foreignKeyElementPart.setTargetTable(table.getName());
}
}
}
if (isAccessible(DatabaseViewsRepository.ForeignKeyElement.Properties.fKColumn)) {
foreignKeyElementPart.addFilterToFKColumn(new ViewerFilter() {
/**
* {@inheritDoc}
*
* @see org.eclipse.jface.viewers.ViewerFilter#select(org.eclipse.jface.viewers.Viewer, java.lang.Object, java.lang.Object)
*/
public boolean select(Viewer viewer, Object parentElement, Object element) {
// $NON-NLS-1$
return (element instanceof String && element.equals("")) || (element instanceof Column);
}
});
// Start of user code for additional businessfilters for fkColumn
// End of user code
}
if (isAccessible(DatabaseViewsRepository.ForeignKeyElement.Properties.pKColumn)) {
foreignKeyElementPart.addFilterToPKColumn(new ViewerFilter() {
/**
* {@inheritDoc}
*
* @see org.eclipse.jface.viewers.ViewerFilter#select(org.eclipse.jface.viewers.Viewer, java.lang.Object, java.lang.Object)
*/
public boolean select(Viewer viewer, Object parentElement, Object element) {
// $NON-NLS-1$
return (element instanceof String && element.equals("")) || (element instanceof Column);
}
});
// Start of user code for additional businessfilters for pkColumn
// End of user code
}
// init values for referenced views
// init filters for referenced views
}
setInitializing(false);
}
use of org.obeonetwork.dsl.database.Column in project InformationSystem by ObeoNetwork.
the class TableTablePropertiesEditionComponent method updateSemanticModel.
/**
* {@inheritDoc}
* @see org.eclipse.emf.eef.runtime.impl.components.StandardPropertiesEditionComponent#updateSemanticModel(org.eclipse.emf.eef.runtime.api.notify.IPropertiesEditionEvent)
*/
public void updateSemanticModel(final IPropertiesEditionEvent event) {
Table table = (Table) semanticObject;
if (DatabaseViewsRepository.Table.Properties.name == event.getAffectedEditor()) {
table.setName((java.lang.String) EEFConverterUtil.createFromString(EcorePackage.Literals.ESTRING, (String) event.getNewValue()));
}
if (DatabaseViewsRepository.Table.Properties.columns == event.getAffectedEditor()) {
if (event.getKind() == PropertiesEditionEvent.ADD) {
EReferencePropertiesEditionContext context = new EReferencePropertiesEditionContext(editingContext, this, columnsSettings, editingContext.getAdapterFactory());
PropertiesEditingProvider provider = (PropertiesEditingProvider) editingContext.getAdapterFactory().adapt(semanticObject, PropertiesEditingProvider.class);
if (provider != null) {
PropertiesEditingPolicy policy = provider.getPolicy(context);
if (policy instanceof CreateEditingPolicy) {
policy.execute();
}
}
} else if (event.getKind() == PropertiesEditionEvent.EDIT) {
EObjectPropertiesEditionContext context = new EObjectPropertiesEditionContext(editingContext, this, (EObject) event.getNewValue(), editingContext.getAdapterFactory());
PropertiesEditingProvider provider = (PropertiesEditingProvider) editingContext.getAdapterFactory().adapt((EObject) event.getNewValue(), PropertiesEditingProvider.class);
if (provider != null) {
PropertiesEditingPolicy editionPolicy = provider.getPolicy(context);
if (editionPolicy != null) {
editionPolicy.execute();
}
}
} else if (event.getKind() == PropertiesEditionEvent.REMOVE) {
columnsSettings.removeFromReference((EObject) event.getNewValue());
} else if (event.getKind() == PropertiesEditionEvent.MOVE) {
columnsSettings.move(event.getNewIndex(), (Column) event.getNewValue());
}
}
if (DatabaseViewsRepository.Table.Properties.comments == event.getAffectedEditor()) {
table.setComments((java.lang.String) EEFConverterUtil.createFromString(EcorePackage.Literals.ESTRING, (String) event.getNewValue()));
}
}
use of org.obeonetwork.dsl.database.Column in project InformationSystem by ObeoNetwork.
the class ColumnPropertiesEditionComponent method initPart.
/**
* {@inheritDoc}
*
* @see org.eclipse.emf.eef.runtime.api.component.IPropertiesEditionComponent#initPart(java.lang.Object, int, org.eclipse.emf.ecore.EObject,
* org.eclipse.emf.ecore.resource.ResourceSet)
*/
public void initPart(Object key, int kind, EObject elt, ResourceSet allResource) {
setInitializing(true);
if (editingPart != null && key == partKey) {
editingPart.setContext(elt, allResource);
if (editingPart instanceof CompositePropertiesEditionPart) {
((CompositePropertiesEditionPart) editingPart).getSettings().add(typeSettings);
((CompositePropertiesEditionPart) editingPart).getSettings().add(lengthSettings);
((CompositePropertiesEditionPart) editingPart).getSettings().add(precisionSettings);
((CompositePropertiesEditionPart) editingPart).getSettings().add(literalsSettings);
}
final Column column = (Column) elt;
final ColumnPropertiesEditionPart columnPart = (ColumnPropertiesEditionPart) editingPart;
// init values
if (isAccessible(DatabaseViewsRepository.Column.Properties.name))
columnPart.setName(EEFConverterUtil.convertToString(EcorePackage.Literals.ESTRING, column.getName()));
if (isAccessible(DatabaseViewsRepository.Column.Properties.NullablePkAndUnique.nullable)) {
columnPart.setNullable(column.isNullable());
}
if (isAccessible(DatabaseViewsRepository.Column.Properties.NullablePkAndUnique.primaryKey)) {
columnPart.setPrimaryKey(column.isInPrimaryKey());
}
if (isAccessible(DatabaseViewsRepository.Column.Properties.NullablePkAndUnique.unique)) {
columnPart.setUnique(column.isUnique());
}
if (isAccessible(DatabaseViewsRepository.Column.Properties.Sequence.autoincrement)) {
columnPart.setAutoincrement(column.isAutoincrement());
}
if (isAccessible(DatabaseViewsRepository.Column.Properties.Sequence.sequence_)) {
// init part
sequenceSettings = new EObjectFlatComboSettings(column, DatabasePackage.eINSTANCE.getColumn_Sequence());
columnPart.initSequence(sequenceSettings);
// set the button mode
columnPart.setSequenceButtonMode(ButtonsModeEnum.BROWSE);
}
if (isAccessible(DatabaseViewsRepository.Column.Properties.defaultValue))
columnPart.setDefaultValue(EEFConverterUtil.convertToString(EcorePackage.Literals.ESTRING, column.getDefaultValue()));
if (isAccessible(DatabaseViewsRepository.Column.Properties.comments))
columnPart.setComments(EcoreUtil.convertToString(EcorePackage.Literals.ESTRING, column.getComments()));
if (typeSettings.getSignificantObject() != null && isAccessible(DatabaseViewsRepository.Column.Properties.type)) {
columnPart.initType(EEFUtils.choiceOfValues(typeSettings.getSignificantObject(), TypesLibraryPackage.eINSTANCE.getTypeInstance_NativeType()), typeSettings.getValue());
}
if (lengthSettings.getValue() != null && isAccessible(DatabaseViewsRepository.Column.Properties.TypeAttributes.length))
columnPart.setLength(EEFConverterUtil.convertToString(EcorePackage.Literals.EINTEGER_OBJECT, lengthSettings.getValue()));
if (precisionSettings.getValue() != null && isAccessible(DatabaseViewsRepository.Column.Properties.TypeAttributes.precision))
columnPart.setPrecision(EEFConverterUtil.convertToString(EcorePackage.Literals.EINTEGER_OBJECT, precisionSettings.getValue()));
if (literalsSettings.getSignificantObject() != null && isAccessible(DatabaseViewsRepository.Column.Properties.literals)) {
columnPart.setLiterals((EList<?>) literalsSettings.getValue());
}
if (isAccessible(DatabaseViewsRepository.Column.Properties.Sequence.sequence_)) {
columnPart.addFilterToSequence(new ViewerFilter() {
/**
* {@inheritDoc}
*
* @see org.eclipse.jface.viewers.ViewerFilter#select(org.eclipse.jface.viewers.Viewer, java.lang.Object, java.lang.Object)
*/
public boolean select(Viewer viewer, Object parentElement, Object element) {
// $NON-NLS-1$
return (element instanceof String && element.equals("")) || (element instanceof Sequence);
}
});
// Start of user code for additional businessfilters for sequence
// End of user code
}
// Start of user code for additional businessfilters for type
// End of user code
// init values for referenced views
// init filters for referenced views
}
setInitializing(false);
}
Aggregations