001package de.deepamehta.core.impl;
002
003import de.deepamehta.core.model.TopicModel;
004import de.deepamehta.core.model.topicmaps.TopicViewModel;
005import de.deepamehta.core.model.topicmaps.ViewProperties;
006
007import org.codehaus.jettison.json.JSONObject;
008
009
010
011class TopicViewModelImpl extends TopicModelImpl implements TopicViewModel {
012
013    // --- Instance Variables ---
014
015    private ViewProperties viewProps;
016
017    // --- Constructors ---
018
019    TopicViewModelImpl(TopicModelImpl topic, ViewProperties viewProps) {
020        super(topic);
021        this.viewProps = viewProps;
022    }
023
024    // --- Public Methods ---
025
026    public ViewProperties getViewProperties() {
027        return viewProps;
028    }
029
030    // ---
031
032    public int getX() {
033        return viewProps.getInt("dm4.topicmaps.x");
034    }
035
036    public int getY() {
037        return viewProps.getInt("dm4.topicmaps.y");
038    }
039
040    public boolean getVisibility() {
041        return viewProps.getBoolean("dm4.topicmaps.visibility");
042    }
043
044    // ---
045
046    @Override
047    public JSONObject toJSON() {
048        try {
049            JSONObject o = super.toJSON();
050            o.put("view_props", viewProps.toJSON());
051            return o;
052        } catch (Exception e) {
053            throw new RuntimeException("Serialization failed (" + this + ")", e);
054        }
055    }
056}