123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168 |
- package de.tu_darmstadt.informatik.tk.scopviz.ui;
- import de.tu_darmstadt.informatik.tk.scopviz.debug.Debug;
- import de.tu_darmstadt.informatik.tk.scopviz.main.Layer;
- import de.tu_darmstadt.informatik.tk.scopviz.main.Main;
- /**
- * Class to manage the various Stylesheets used by the Graph and UI Elements.
- *
- * @author Jascha Bohne
- *
- */
- public class StylesheetManager {
- /**
- * all available graphic styles
- */
- private static String[] allNodeGraphics = { "Shapes" };
- /**
- * The Stylesheet that is given to every graph that is added to display
- * everything correctly.
- */
- public static final String DEFAULT_STYLESHEET = "node{text-alignment:at-right; size:15px;} \n"
- + "edge{text-offset: 4px,-4px;} edge.selected{fill-color: #FF0000;}";
- /**
- * Part of the stylesheet that styles the different Nodes with shapes.
- */
- public static final String STYLE_NODES_SHAPES = "node.standard{shape: diamond;}" + "node.source{shape: triangle;}"
- + "node.procEn{shape: circle;}" + "node.sink{shape: box;}" + "node.operator{shape: diamond;}";
- /**
- * Part of the stylesheet that styles the different Nodes with sprites.
- */
- @Deprecated
- public static final String STYLE_NODES_SPRITES = "node.standard{fill-mode: image-scaled; fill-image: url('src/main/resources/png/standard.png'); }"
- + "node.source{fill-mode: image-scaled; fill-image: url('src/main/resources/png/source.png'); }"
- + "node.procEn{fill-mode: image-scaled; fill-image: url('src/main/resources/png/procEn.png'); }"
- + "node.sink{fill-mode: image-scaled; fill-image: url('src/main/resources/png/sink.png'); }"
- + "node.operator{fill-mode: image-scaled; fill-image: url('src/main/resources/png/operator.png'); }";
- /** The currently selected Display Mode. */
- private static String nodeGraphics = allNodeGraphics[0];
- /** The currently active Stylesheet. */
- private static String nodeStylesheet = STYLE_NODES_SHAPES;
- /** Layer specific Stylesheet for Underlay layer. */
- private static String styleLayerUnderlay = "";
- /** Layer specific Stylesheet for Operator layer. */
- private static String styleLayerOperator = "";
- /** Layer specific Stylesheet for Mapping layer. */
- private static String styleLayerMapping = "edge.mapping {stroke-color: #33ff33; stroke-mode: dashes; fill-mode: none; size: 0px;}"
- + "node.procEn {fill-mode: plain; shape: pie-chart; fill-color: #555555, #cccc00, #32cd32, #8b0000; size: 20px;}";
- /** Layer specific Stylesheet for Symbol layer. */
- private static String styleLayerSymbol = "";
- /** Private Constructor to prevent instantiation. */
- private StylesheetManager() {
- }
- /**
- * Changes the Stylesheet and updates all Nodes to use it.
- *
- * @param newGraphics
- * the new Stylesheet to use
- */
- public static void adjustNodeGraphics(String newGraphics) {
- if (!newGraphics.equalsIgnoreCase(StylesheetManager.nodeGraphics)) {
- StylesheetManager.nodeGraphics = newGraphics;
- if (newGraphics.equals(StylesheetManager.allNodeGraphics[0])) {
- StylesheetManager.setNodeStylesheet(StylesheetManager.STYLE_NODES_SHAPES);
- } else if (newGraphics.equals(StylesheetManager.allNodeGraphics[1])) {
- StylesheetManager.setNodeStylesheet(StylesheetManager.STYLE_NODES_SPRITES);
- } else {
- throw new RuntimeException("These graphics do not exist");
- }
- }
- Main.getInstance().getGraphManager().setStylesheet();
- }
- /**
- * Returns all available Stylesheets as Strings.
- *
- * @return all the StyleSheets
- */
- public static String[] getAllNodeGraphics() {
- return StylesheetManager.allNodeGraphics;
- }
- /**
- * Returns the currently active StyleSheet.
- *
- * @return the currently active StyleSheet as a String
- */
- public static String getNodeStylesheet() {
- return StylesheetManager.nodeStylesheet;
- }
- /**
- * Sets the current Stylesheet.
- *
- * @param stylesheet
- * the Stylesheet to use
- */
- public static void setNodeStylesheet(String stylesheet) {
- StylesheetManager.nodeStylesheet = stylesheet;
- }
- /**
- * the identifier of the currently used Stylesheet
- *
- * @return nodeGraphics the identifier of the currently used stylesheet as a
- * String
- */
- public static String getNodeGraphics() {
- return nodeGraphics;
- }
- /**
- * Returns the styleSheet for a given Layer.
- *
- * @param l
- * the Layer
- * @return the Stylesheet
- */
- public static String getLayerStyle(Layer l) {
- switch (l) {
- case UNDERLAY:
- return styleLayerUnderlay;
- case OPERATOR:
- return styleLayerOperator;
- case MAPPING:
- return styleLayerMapping;
- case SYMBOL:
- return styleLayerSymbol;
- default:
- Debug.out("OptionsManager: Stylesheet for an unknown Layer Requested");
- return "";
- }
- }
- /**
- * Sets the Stylesheet for a given Layer.
- *
- * @param l
- * the Layer
- * @param newStyle
- * the Stylesheet
- */
- public static void setLayerStyle(Layer l, String newStyle) {
- switch (l) {
- case UNDERLAY:
- styleLayerUnderlay = newStyle;
- break;
- case OPERATOR:
- styleLayerOperator = newStyle;
- break;
- case MAPPING:
- styleLayerMapping = newStyle;
- break;
- case SYMBOL:
- styleLayerSymbol = newStyle;
- break;
- default:
- Debug.out("OptionsManager: Stylesheet for an unknown Layer Requested");
- }
- }
- }
|