package org.infoobject.magicmap.plugin;
import net.sf.magicmap.client.controller.IController;
import net.sf.magicmap.client.plugin.AbstractPlugin;
import net.sf.magicmap.client.plugin.IPluginDescriptor;
import net.sf.magicmap.client.utils.Settings;
import org.infoobject.core.components.DefaultModelFactory;
import org.infoobject.core.components.ModelFactory;
import org.infoobject.magicmap.node.application.PositionLinkRelationManager;
import org.infoobject.core.tag.application.TaggingRelationManager;
import org.infoobject.magicmap.components.GuiComponentFactory;
import org.infoobject.magicmap.components.PluginManagerFactory;
import org.infoobject.magicmap.visualization.application.VisualizationManager;
import java.util.LinkedList;
import java.util.List;
/**
* <p>
* Class InformationObjectPlugin ZUSAMMENFASSUNG
* </p>
* <p>
* DETAILS
* </p>
*
* @author Jan Friderici
* Date: 09.08.2008
* Time: 19:36:22
*/
public class InformationObjectPlugin extends AbstractPlugin {
private VisualizationManager visualizationManager;
private IController controller;
private List<Exception> startExceptions = new LinkedList<Exception>();
private TaggingRelationManager taggingRelationManager;
private GuiComponentFactory factory;
private PositionLinkRelationManager positionLinkRelationManager;
private ModelFactory modelFactory;
private PluginManagerFactory managerFactory;
public InformationObjectPlugin(IPluginDescriptor iPluginDescriptor) {
super(iPluginDescriptor);
}
@Override
public void setController(IController iController) {
super.setController(iController);
controller = iController;
}
@Override
public void startPlugin() {
super.startPlugin(); //To change body of overridden methods use File | Settings | File Templates.
}
@Override
public void stopPlugin() {
super.stopPlugin(); //To change body of overridden methods use File | Settings | File Templates.
}
@Override
public void connect() {
super.connect();
}
@Override
public void loadMap() {
factory.getVisualizationManager().setMap(modelFactory.getInformationObjectNodeModel().getCurrentMap());
}
@Override
public void setup(Settings settings) {
super.setup(settings);
modelFactory = new DefaultModelFactory(controller);
managerFactory = new PluginManagerFactory(modelFactory);
factory = new GuiComponentFactory(modelFactory, managerFactory);
try {
factory.start();
positionLinkRelationManager = new PositionLinkRelationManager(modelFactory.getInformationObjectNodeModel(), modelFactory.getInformationObjectNodeGraph(), modelFactory.getInformationObjectModel());
registerNodeModelListeners();
} catch (Exception e) {
startExceptions.add(e);
e.printStackTrace();
} finally {
if (startExceptions.size() > 0) {
factory.getConsoleView().append(" " + startExceptions.size() + " Errors starting InformationObjectPlugin!");
for (Exception ex : startExceptions) {
factory.getConsoleView().append(ex.getMessage());
}
} else {
factory.getConsoleView().append("Infoobjects loaded");
}
}
}
private void registerNodeModelListeners() {
}
}