// GraphTea Project: http://github.com/graphtheorysoftware/GraphTea // Copyright (C) 2012 Graph Theory Software Foundation: http://GraphTheorySoftware.com // Copyright (C) 2008 Mathematical Science Department of Sharif University of Technology // Distributed under the terms of the GNU General Public License (GPL): http://www.gnu.org/licenses/ package graphtea.graph.atributeset; import graphtea.graph.graph.GPoint; import graphtea.graph.graph.Vertex; import graphtea.graph.old.GShape; import graphtea.graph.old.GStroke; import graphtea.platform.attribute.AttributeSet; import java.util.HashMap; import java.util.Map; /** * @author Azin Azadi * @see graphtea.graph.atributeset.GraphAttrSet */ public class VertexAttrSet implements AttributeSet { private Vertex v; public static final String LABEL = "Label"; public static final String COLOR = "Color"; public static final String SHAPE = "Shape"; public static final String BORDER = "Border Stroke"; public static final String LOCATION = "Location"; public static final String SIZE = "Size"; public static final String MARK = "Mark"; public static final String SELECTED = "Selected"; public static final String LABEL_LOCATION = "Label Location"; public VertexAttrSet(Vertex v) { this.v = v; } public Map<String, Object> getAttrs() { Map<String, Object> ret = new HashMap<>(15); ret.put(LABEL, v.getLabel()); ret.put(COLOR, v.getColor()); ret.put(SHAPE, v.getShape()); ret.put(BORDER, v.getShapeStroke()); ret.put(LOCATION, v.getLocation()); ret.put(SIZE, v.getSize()); ret.put(MARK, v.getMark()); ret.put(SELECTED, v.isSelected()); ret.put(LABEL_LOCATION, v.getLabelLocation()); if (v.getUserDefinedAttributes() != null) ret.putAll(v.getUserDefinedAttributes()); return ret; } public void put(String atrName, Object val) { switch (atrName) { case LABEL: v.setLabel((String) val); break; case SHAPE: v.setShape((GShape) val); break; case BORDER: v.setShapeStroke((GStroke) val); break; case LOCATION: v.setLocation((GPoint) val); break; case SIZE: v.setSize((GPoint) val); break; case MARK: v.setMark((Boolean) val); break; case SELECTED: v.setSelected((Boolean) val); break; case COLOR: v.setColor((Integer) val); break; case LABEL_LOCATION: v.setLabelLocation((GPoint) val); break; default: v.setUserDefinedAttribute(atrName, val); break; } } public Object get(String atrName) { Object ret = null; switch (atrName) { case LABEL: ret = v.getLabel(); break; case SHAPE: ret = v.getShape(); break; case BORDER: ret = v.getShapeStroke(); break; case LOCATION: ret = v.getLocation(); break; case SIZE: ret = v.getSize(); break; case MARK: ret = v.getMark(); break; case SELECTED: ret = v.isSelected; break; case COLOR: ret = v.getColor(); break; case LABEL_LOCATION: ret = v.getLabelLocation(); break; default: ret = v.getUserDefinedAttribute(atrName); break; } return ret; } }