001 package de.deepamehta.plugins.topicmaps.service;
002
003 import de.deepamehta.plugins.topicmaps.ClusterCoords;
004 import de.deepamehta.plugins.topicmaps.TopicmapRenderer;
005 import de.deepamehta.plugins.topicmaps.ViewmodelCustomizer;
006 import de.deepamehta.plugins.topicmaps.model.TopicmapViewmodel;
007
008 import de.deepamehta.core.Topic;
009 import de.deepamehta.core.model.CompositeValueModel;
010 import de.deepamehta.core.service.ClientState;
011 import de.deepamehta.core.service.PluginService;
012
013
014
015 public interface TopicmapsService extends PluginService {
016
017 /**
018 * @param fetchComposite if true the topics contained in the topicmap will include their child topics.
019 */
020 TopicmapViewmodel getTopicmap(long topicmapId, boolean fetchComposite);
021
022 // ---
023
024 Topic createTopicmap(String name, String topicmapRendererUri, ClientState clientState);
025 Topic createTopicmap(String name, String uri, String topicmapRendererUri, ClientState clientState);
026
027 // ---
028
029 void addTopicToTopicmap(long topicmapId, long topicId, CompositeValueModel viewProps);
030
031 /**
032 * Convenience method to add a topic with the standard view properties.
033 */
034 void addTopicToTopicmap(long topicmapId, long topicId, int x, int y, boolean visibility);
035
036 void addAssociationToTopicmap(long topicmapId, long assocId);
037
038 // ---
039
040 boolean isTopicInTopicmap(long topicmapId, long topicId);
041
042 // ---
043
044 void setViewProperties(long topicmapId, long topicId, CompositeValueModel viewProps);
045
046 /**
047 * Convenience method to update the "dm4.topicmaps.x" and "dm4.topicmaps.y" standard view properties.
048 */
049 void setTopicPosition(long topicmapId, long topicId, int x, int y);
050
051 /**
052 * Convenience method to update the "dm4.topicmaps.visibility" standard view property.
053 */
054 void setTopicVisibility(long topicmapId, long topicId, boolean visibility);
055
056 void removeAssociationFromTopicmap(long topicmapId, long assocId);
057
058 // ---
059
060 void setClusterPosition(long topicmapId, ClusterCoords coords);
061
062 void setTopicmapTranslation(long topicmapId, int trans_x, int trans_y);
063
064 // ---
065
066 void registerTopicmapRenderer(TopicmapRenderer renderer);
067 // ### TODO: unregister needed? Might a renderer hold a stale dms instance?
068
069 void registerViewmodelCustomizer(ViewmodelCustomizer customizer);
070 void unregisterViewmodelCustomizer(ViewmodelCustomizer customizer);
071 }