package org.insightech.er.editor.view.property_source; import java.util.List; import org.eclipse.ui.views.properties.ComboBoxPropertyDescriptor; import org.eclipse.ui.views.properties.IPropertyDescriptor; import org.eclipse.ui.views.properties.IPropertySource; import org.insightech.er.ResourceString; import org.insightech.er.db.DBManagerFactory; import org.insightech.er.editor.model.ERDiagram; public class ERDiagramPropertySource implements IPropertySource { public static final String PROPERTY_INIT_DATABASE = "initDatabase"; private ERDiagram diagram; public ERDiagramPropertySource(ERDiagram diagram) { this.diagram = diagram; } public Object getEditableValue() { return this.diagram; } public IPropertyDescriptor[] getPropertyDescriptors() { List<String> dbList = DBManagerFactory.getAllDBList(); return new IPropertyDescriptor[] { new ComboBoxPropertyDescriptor( "database", ResourceString.getResourceString("label.database"), dbList.toArray(new String[dbList.size()])) }; } public Object getPropertyValue(Object id) { if (id.equals("database")) { List<String> dbList = DBManagerFactory.getAllDBList(); for (int i = 0; i < dbList.size(); i++) { if (dbList.get(i).equals(this.diagram.getDatabase())) { return new Integer(i); } } return new Integer(0); } return null; } public boolean isPropertySet(Object id) { if (id.equals("database")) { return true; } return false; } public void resetPropertyValue(Object id) { } public void setPropertyValue(Object id, Object value) { if (id.equals("database")) { List<String> dbList = DBManagerFactory.getAllDBList(); int index = Integer.parseInt(String.valueOf(value)); this.diagram.setDatabase(dbList.get(index)); } } }