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}