1 /* 2 * TouchGraph LLC. Apache-Style Software License 3 * 4 * 5 * Copyright (c) 2001-2002 Alexander Shapiro. All rights reserved. 6 * 7 * Redistribution and use in source and binary forms, with or without 8 * modification, are permitted provided that the following conditions 9 * are met: 10 * 11 * 1. Redistributions of source code must retain the above copyright 12 * notice, this list of conditions and the following disclaimer. 13 * 14 * 2. Redistributions in binary form must reproduce the above copyright 15 * notice, this list of conditions and the following disclaimer in 16 * the documentation and/or other materials provided with the 17 * distribution. 18 * 19 * 3. The end-user documentation included with the redistribution, 20 * if any, must include the following acknowledgment: 21 * "This product includes software developed by 22 * TouchGraph LLC (http://www.touchgraph.com/)." 23 * Alternately, this acknowledgment may appear in the software itself, 24 * if and wherever such third-party acknowledgments normally appear. 25 * 26 * 4. The names "TouchGraph" or "TouchGraph LLC" must not be used to endorse 27 * or promote products derived from this software without prior written 28 * permission. For written permission, please contact 29 * alex@touchgraph.com 30 * 31 * 5. Products derived from this software may not be called "TouchGraph", 32 * nor may "TouchGraph" appear in their name, without prior written 33 * permission of alex@touchgraph.com. 34 * 35 * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED 36 * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES 37 * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 38 * DISCLAIMED. IN NO EVENT SHALL TOUCHGRAPH OR ITS CONTRIBUTORS BE 39 * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR 40 * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF 41 * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR 42 * BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, 43 * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE 44 * OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, 45 * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 46 * ==================================================================== 47 * 48 */ 49 50 package com.touchgraph.graphlayout.interaction; 51 52 import java.util.Vector; 53 54 /*** TGUIManager switches between major user interfaces, and allows 55 * them to be referred to by name. This will probably come in handy 56 * when switching user interfaces from menus. 57 * 58 * @author Alexander Shapiro 59 * @version 1.21 $Id: TGUIManager.java,v 1.1.1.1 2004/02/06 08:44:07 keesj Exp $ 60 */ 61 public class TGUIManager { 62 63 Vector userInterfaces; 64 65 // ............ 66 67 /*** Default constructor. 68 */ 69 public TGUIManager() { 70 userInterfaces = new Vector(); 71 } 72 73 class NamedUI { 74 TGUserInterface ui; 75 String name; 76 77 NamedUI( TGUserInterface ui, String n ) { 78 this.ui = ui; 79 name = n; 80 } 81 } 82 83 public void addUI( TGUserInterface ui, String name ) { 84 userInterfaces.addElement(new NamedUI(ui,name)); 85 } 86 87 public void addUI( TGUserInterface ui ) { 88 addUI(ui,null); 89 } 90 91 public void removeUI( String name ) { 92 for (int i=0;i<userInterfaces.size();i++) 93 if (((NamedUI) userInterfaces.elementAt(i)).name.equals(name)) userInterfaces.removeElementAt(i); 94 95 } 96 97 public void removeUI( TGUserInterface ui ) { 98 for (int i=0;i<userInterfaces.size();i++) 99 if (((NamedUI) userInterfaces.elementAt(i)).ui==ui) userInterfaces.removeElementAt(i); 100 101 } 102 103 public void activate( String name ) { 104 for (int i=0;i<userInterfaces.size();i++) { 105 NamedUI namedInterf = (NamedUI) userInterfaces.elementAt(i); 106 TGUserInterface ui=namedInterf.ui; 107 if (((NamedUI) userInterfaces.elementAt(i)).name.equals(name)) ui.activate(); 108 else ui.deactivate(); 109 } 110 } 111 112 public void activate( TGUserInterface ui ) { 113 for (int i=0;i<userInterfaces.size();i++) { 114 if (((NamedUI) userInterfaces.elementAt(i)).ui==ui) ui.activate(); 115 else ui.deactivate(); 116 } 117 } 118 119 } // end com.touchgraph.graphlayout.interaction.TGUIManager