/* * generated by Xtext */ package com.robotoworks.mechanoid.db.ui.labeling; import java.util.ArrayList; import org.eclipse.emf.common.util.EList; import org.eclipse.emf.edit.ui.provider.AdapterFactoryLabelProvider; import org.eclipse.xtext.serializer.ISerializer; import org.eclipse.xtext.ui.label.DefaultEObjectLabelProvider; import org.eclipse.xtext.util.Strings; import com.google.common.collect.Lists; import com.google.inject.Inject; import com.robotoworks.mechanoid.db.sqliteModel.ActionStatement; import com.robotoworks.mechanoid.db.sqliteModel.AlterTableAddColumnStatement; import com.robotoworks.mechanoid.db.sqliteModel.AlterTableRenameStatement; import com.robotoworks.mechanoid.db.sqliteModel.ColumnConstraint; import com.robotoworks.mechanoid.db.sqliteModel.ColumnDef; import com.robotoworks.mechanoid.db.sqliteModel.ConfigBlock; import com.robotoworks.mechanoid.db.sqliteModel.CreateIndexStatement; import com.robotoworks.mechanoid.db.sqliteModel.CreateTableStatement; import com.robotoworks.mechanoid.db.sqliteModel.CreateTriggerStatement; import com.robotoworks.mechanoid.db.sqliteModel.CreateViewStatement; import com.robotoworks.mechanoid.db.sqliteModel.DatabaseBlock; import com.robotoworks.mechanoid.db.sqliteModel.DropTableStatement; import com.robotoworks.mechanoid.db.sqliteModel.DropViewStatement; import com.robotoworks.mechanoid.db.sqliteModel.InitBlock; import com.robotoworks.mechanoid.db.sqliteModel.MigrationBlock; import com.robotoworks.mechanoid.db.sqliteModel.Model; import com.robotoworks.mechanoid.db.sqliteModel.PrimaryKeyColumnConstraint; import com.robotoworks.mechanoid.db.sqliteModel.ResultColumn; import com.robotoworks.mechanoid.db.sqliteModel.SingleSourceTable; import com.robotoworks.mechanoid.db.sqliteModel.TableConstraint; /** * Provides labels for a EObjects. * * see http://www.eclipse.org/Xtext/documentation/latest/xtext.html#labelProvider */ public class SqliteModelLabelProvider extends DefaultEObjectLabelProvider { @Inject ISerializer serializer; @Inject public SqliteModelLabelProvider(AdapterFactoryLabelProvider delegate) { super(delegate); } /* //Labels and icons can be computed like this: String text(MyModel ele) { return "my "+ele.getName(); } String image(MyModel ele) { return "MyModel.gif"; } */ public String text(ColumnDef e) { PrimaryKeyColumnConstraint c = findPrimaryKeyConstraint(e.getConstraints()); ArrayList<String> parts = Lists.newArrayList(); parts.add("PK"); if(c.isDesc()) { parts.add("desc"); } else { parts.add("asc"); } if(c.isAutoincrement()) { parts.add("autoincrement"); } String info = " (" + Strings.concat(", ", parts) + ")"; return e.getName() + info; } public String text(ConfigBlock e) { return "Configuration"; } public String text(InitBlock e) { return "Initialization"; } public String text(AlterTableAddColumnStatement e) { return "Add column to " + e.getTable().getName(); } public String text(MigrationBlock e) { int version = ((DatabaseBlock)e.eContainer()).getMigrations().indexOf(e) + 1; return "Migration (v" + version + ")"; } public String image(ConfigBlock e) { return "actions.gif"; } public String image(InitBlock e) { return "actions.gif"; } public String image(ActionStatement e) { return "action.gif"; } public String image(DatabaseBlock e) { return "database.gif"; } public String image(MigrationBlock e) { return "migration.gif"; } public String image(Model e) { return "package.gif"; } public String image(CreateIndexStatement e) { return "index.gif"; } public String image(ColumnDef e) { if(findPrimaryKeyConstraint(e.getConstraints()) != null) { return "key.gif"; } return "column.gif"; } public String image(AlterTableAddColumnStatement e) { EList<ColumnConstraint> constraints = ((ColumnDef)e.getColumnDef()).getConstraints(); if(findPrimaryKeyConstraint(constraints) != null) { return "key.gif"; } return "column.gif"; } public String image(PrimaryKeyColumnConstraint e) { return "key.gif"; } public String image(ResultColumn e) { if(e.getName() == null) { return "column.gif"; } else { return "aliased_column.gif"; } } public String image(CreateTableStatement e) { return "table.gif"; } public String image(CreateViewStatement e) { return "table.gif"; } public String image(AlterTableRenameStatement e) { return "table.gif"; } public String image(SingleSourceTable e) { return "table.gif"; } public String image(TableConstraint e) { return "constraint.gif"; } public String image(ColumnConstraint e) { return "constraint.gif"; } public String image(CreateTriggerStatement e) { return "trigger.gif"; } private PrimaryKeyColumnConstraint findPrimaryKeyConstraint(EList<ColumnConstraint> constraints) { if(constraints!= null) { for(ColumnConstraint c : constraints) { if(c instanceof PrimaryKeyColumnConstraint) { return (PrimaryKeyColumnConstraint) c; } } } return null; } public String text(DropViewStatement e) { return e.getView().getName(); } public String image(DropViewStatement e) { return "drop_table.gif"; } public String text(DropTableStatement e) { return e.getTable().getName(); } public String image(DropTableStatement e) { return "drop_table.gif"; } }