package org.flowerplatform.editor.model.properties;
import java.util.ArrayList;
import java.util.List;
import org.flowerplatform.communication.CommunicationPlugin;
import org.flowerplatform.communication.service.ServiceInvocationContext;
import org.flowerplatform.editor.model.properties.remote.DiagramSelectedItem;
import org.flowerplatform.editor.model.remote.DiagramEditableResource;
import org.flowerplatform.editor.model.remote.DiagramEditorStatefulService;
import org.flowerplatform.emf_model.notation.Diagram;
import org.flowerplatform.properties.providers.IPropertiesProvider;
import org.flowerplatform.properties.remote.Property;
import org.flowerplatform.properties.remote.SelectedItem;
/**
* @author Cristina Constantinescu
*/
public class DiagramPropertiesProvider extends AbstractModelPropertiesProvider<Diagram> {
public static final String LOCATION_FOR_NEW_ELEMENTS_PROPERTY = "locationForNewElements";
public static final String SHOW_LOCATION_FOR_NEW_ELEMENTS_DILOG_PROPERTY = "showLocationForNewElementsDialog";
@Override
public List<String> getPropertyNames() {
// TODO Auto-generated method stub
return null;
}
@Override
public Property getProperty(SelectedItem selectedItem, String propertyName) {
// TODO Auto-generated method stub
return null;
}
@Override
public List<Property> getProperties(SelectedItem selectedItem) {
List<Property> properties = new ArrayList<Property>();
Diagram diagram = resolveSelectedItem((DiagramSelectedItem) selectedItem);
properties.add(new Property(LOCATION_FOR_NEW_ELEMENTS_PROPERTY,
diagram.getLocationForNewElements(), "StringWithDialog", true));
properties.add(new Property(SHOW_LOCATION_FOR_NEW_ELEMENTS_DILOG_PROPERTY,
diagram.isShowLocationForNewElementsDialog(), "Boolean", false));
return properties;
}
/**
* @author Cristian Spiescu
*/
@Override
protected void doSetProperty(DiagramSelectedItem selectedItem,
Diagram resolvedSelectedItem, String propertyName,
Object propertyValue) {
if (propertyName.equals(LOCATION_FOR_NEW_ELEMENTS_PROPERTY)) {
resolvedSelectedItem.setLocationForNewElements((String) propertyValue);
} else if (propertyName.equals(SHOW_LOCATION_FOR_NEW_ELEMENTS_DILOG_PROPERTY)) {
resolvedSelectedItem.setShowLocationForNewElementsDialog((Boolean) propertyValue);
}
}
}