1 /*******************************************************************************
\r
2 * Copyright (c) 2007, 2010 Association for Decentralized Information Management
\r
3 * in Industry THTH ry.
\r
4 * All rights reserved. This program and the accompanying materials
\r
5 * are made available under the terms of the Eclipse Public License v1.0
\r
6 * which accompanies this distribution, and is available at
\r
7 * http://www.eclipse.org/legal/epl-v10.html
\r
10 * VTT Technical Research Centre of Finland - initial API and implementation
\r
11 *******************************************************************************/
\r
12 package org.simantics.scenegraph.utils.variable;
\r
15 * A container for a single dynamic-enabled integer variable of a scene graph
\r
16 * node. Dynamic-enabled means a variable that potentially has two values: one
\r
17 * static (~ default) and one dynamic. If the dynamic part has a non-null value
\r
18 * it should always be used instead of the static value. Use
\r
19 * {@link #getActiveValue()} to get the current variable value to follow this
\r
20 * policy in your client code.
\r
23 * Variables generally determine the way a node gets rendered.
\r
25 * @author Tuukka Lehtonen
\r
27 public class DynamicInteger extends DynamicVariable<Integer> {
\r
31 public static DynamicInteger make(int initialValue) {
\r
32 return new DynamicInteger(initialValue);
\r
35 public DynamicInteger(int initialValue) {
\r
36 this.value = initialValue;
\r
39 public int getValue() {
\r
43 public int getActiveValue() {
\r
44 return dynamicValue != null ? dynamicValue : value;
\r
48 * Sets the static value of the variable.
\r
50 * @param value new static value
\r
52 public void setValue(int value) {
\r
56 public boolean hasDynamicValue() {
\r
57 return dynamicValue != null && getValue() != getActiveValue();
\r