/******************************************************************************* * Copyright 2005-2007, CHISEL Group, University of Victoria, Victoria, BC, * Canada. All rights reserved. This program and the accompanying materials are * made available under the terms of the Eclipse Public License v1.0 which * accompanies this distribution, and is available at * http://www.eclipse.org/legal/epl-v10.html * * Contributors: The Chisel Group, University of Victoria ******************************************************************************/ package org.eclipse.zest.core.widgets; /** * Style constants used in Zest. * * @author Chris Callendar */ public final class ZestStyles { /** * A constant known to be zero (0), used in operations which take bit flags * to indicate that "no bits are set". */ public static final int NONE = 0; /** * Style constant indicating that invisible nodes should be ignored for * layouts. */ public static final int IGNORE_INVISIBLE_LAYOUT = 1 << 1; /** * Style constant indicating if the selected node's neighbors should be * highlighted. Note: this is a node-level style. It should not be applied * to graph views during construction. * */ //public static final int NODES_HIGHLIGHT_ADJACENT = 1 << 1; /** * Style constant indicating that node labels should be cached. This is * important under GTK+ because font drawing is slower than Windows. */ public static final int NODES_CACHE_LABEL = 1 << 1; /** * Style to specify that the node should contain a fisheye label * when the mouse moves over it. By default the fisheye node is just the * label with larger text. */ public static final int NODES_FISHEYE = 1 << 2; /** * Style to specify that the node should not show its text (only its image). * This with the NODES_FISHEYE style should help with large graphs (since the * fisheye style will show the text). */ public static final int NODES_HIDE_TEXT = 1 << 3; /** * Style constant indiciating that nodes should not be resized on layout. */ public static final int NODES_NO_LAYOUT_RESIZE = 1 << 4; /** * Style indicating that connections should show their direction by default. */ public static final int CONNECTIONS_DIRECTED = 1 << 1; /** * Style constant to indicate that connections should be drawn with solid * lines (this is the default). */ public static final int CONNECTIONS_SOLID = 1 << 2; /** * Style constant to indicate that connections should be drawn with dashed * lines. */ public static final int CONNECTIONS_DASH = 1 << 3; /** * Style constant to indicate that connections should be drawn with dotted * lines. */ public static final int CONNECTIONS_DOT = 1 << 4; /** * Style constant to indicate that connections should be drawn with * dash-dotted lines. */ public static final int CONNECTIONS_DASH_DOT = 1 << 5; /** * Bitwise ANDs the styleToCheck integer with the given style. * * @param style * @param styleToCheck * @return boolean if styleToCheck is part of the style */ public static boolean checkStyle(int style, int styleToCheck) { return ((style & styleToCheck) == styleToCheck); } /** * Validates the given style for connections to see if it is legal. Returns * false if not. * * @param style * the style to check. * @return true iff the given style is legal. */ public static boolean validateConnectionStyle(int styleToValidate) { int style = styleToValidate; // int illegal = CONNECTIONS_CURVED | CONNECTIONS_STRAIGHT | // CONNECTIONS_BEZIER; /* int illegal = CONNECTIONS_STRAIGHT; style &= illegal; int rightBit = style & (-style); boolean okay = (style == rightBit); if (!okay) { return okay; } */ int illegal = CONNECTIONS_DASH_DOT | CONNECTIONS_DASH | CONNECTIONS_DOT | CONNECTIONS_SOLID; style = styleToValidate; style &= illegal; int rightBit = style & (-style); boolean okay = (style == rightBit); if (!okay) { return okay; } return true; // @tag zest.bug.160368-ConnectionAlign.fix : must check the connections // to make sure that there isnt' an illegal combination of alignments. /* illegal = CONNECTIONS_VALIGN_BOTTOM | CONNECTIONS_VALIGN_MIDDLE | CONNECTIONS_VALIGN_TOP; style = styleToValidate; style &= illegal; rightBit = style & (-style); return (style == rightBit); */ } }