01: /*
02: * $Header: /cvs/j3dfly/J3dEditor/src/org/jdesktop/j3dedit/scenegraph/SGLocale.java,v 1.1 2005/04/20 22:20:41 paulby Exp $
03: *
04: * Sun Public License Notice
05: *
06: * The contents of this file are subject to the Sun Public License Version
07: * 1.0 (the "License"). You may not use this file except in compliance with
08: * the License. A copy of the License is available at http://www.sun.com/
09: *
10: * The Original Code is the Java 3D(tm) Scene Graph Editor.
11: * The Initial Developer of the Original Code is Paul Byrne.
12: * Portions created by Paul Byrne are Copyright (C) 2002.
13: * All Rights Reserved.
14: *
15: * Contributor(s): Paul Byrne.
16: *
17: **/
18: package org.jdesktop.j3dedit.scenegraph;
19:
20: import java.util.Properties;
21:
22: import org.jdesktop.j3dedit.treelayout.TreePanel;
23: import javax.media.j3d.BranchGroup;
24: import org.jdesktop.j3dfly.utils.developmenttools.DevelopmentLocale;
25:
26: /**
27: * @author Paul Byrne
28: * @version 1.6, 01/18/02
29: */
30: public class SGLocale extends SGGroup {
31:
32: protected DevelopmentLocale locale;
33:
34: /**
35: * Used to replace branchgraph that are set to not live
36: */
37: private BranchGroup childReplacement = null;
38:
39: /** Creates new groupTreeNode */
40: public SGLocale(
41: org.jdesktop.j3dfly.utils.developmenttools.DevelopmentLocale locale,
42: org.jdesktop.j3dedit.J3dEditContext editContext) {
43: super (null, editContext);
44: this .locale = locale;
45: }
46:
47: public boolean childrenHidden() {
48: return false;
49: }
50:
51: public javax.media.j3d.Locale getLocale() {
52: return locale;
53: }
54:
55: /**
56: * Change the live state of this node, this may change the live
57: * state of other nodes in the graph, but in general the minimum
58: * change will be made
59: */
60: public void setLive(boolean live) {
61: context.getLocale().setLive(live);
62: }
63:
64: void childSetLive(SGBranchGroup child, boolean live) {
65: if (live) {
66: if (childReplacement == null)
67: throw new RuntimeException("Internal error");
68: locale.silentReplaceBranchGraph(childReplacement,
69: (BranchGroup) child.getJ3dNode());
70: childReplacement = null;
71: } else {
72: if (childReplacement != null)
73: throw new RuntimeException(
74: "Internal error, attempt to detach second branchgraph");
75: childReplacement = new BranchGroup();
76: childReplacement.setCapability(BranchGroup.ALLOW_DETACH);
77: locale.silentReplaceBranchGraph((BranchGroup) child
78: .getJ3dNode(), childReplacement);
79: }
80: }
81:
82: }
|