View Javadoc

1   /*--------------------------------------------------------------------------
2    *  Copyright 2008 utgenome.org
3    *
4    *  Licensed under the Apache License, Version 2.0 (the "License");
5    *  you may not use this file except in compliance with the License.
6    *  You may obtain a copy of the License at
7    *
8    *     http://www.apache.org/licenses/LICENSE-2.0
9    *
10   *  Unless required by applicable law or agreed to in writing, software
11   *  distributed under the License is distributed on an "AS IS" BASIS,
12   *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13   *  See the License for the specific language governing permissions and
14   *  limitations under the License.
15   *--------------------------------------------------------------------------*/
16  //--------------------------------------
17  // utgb-widget Project
18  //
19  // UTGBIconFactory.java
20  // Since: Apr 24, 2008
21  //
22  // $URL$ 
23  // $Author$
24  //--------------------------------------
25  package org.utgenome.gwt.widget.client;
26  
27  import com.google.gwt.core.client.GWT;
28  import com.google.gwt.resources.client.ImageResource;
29  import com.google.gwt.user.client.ui.Image;
30  
31  /**
32   * Icon generator.
33   * 
34   * Usage:
35   * 
36   * <pre>
37   * UTGBDesignFactory iconFactory = new UTGBDesignFactory(UTGBImageBundle.class);
38   * Icon icon = iconFactory.getCloseButton();
39   * 
40   * </pre>
41   * 
42   * @author leo
43   * 
44   */
45  public class UTGBDesignFactory {
46  
47  	private String themeFolder = "theme/default/";
48  
49  	public static final String TRACKFRAME_BACKGROUND = "trackframe-bg.png";
50  
51  	private final UTGBImageBundle defaultImageBundle;
52  
53  	public UTGBDesignFactory() {
54  		defaultImageBundle = GWT.<UTGBImageBundle> create(UTGBImageBundle.class);
55  	}
56  
57  	public UTGBDesignFactory(UTGBImageBundle imageBundle) {
58  		this.defaultImageBundle = imageBundle;
59  	}
60  
61  	public UTGBImageBundle getUTGBImageBundle() {
62  		return defaultImageBundle;
63  	}
64  
65  	private Image image(ImageResource resource, String title) {
66  		Image image = new Image(resource);
67  		image.setTitle(title);
68  		return image;
69  	}
70  
71  	private Image image(ImageResource resource) {
72  		return new Image(resource);
73  	}
74  
75  	public Icon getCloseButton() {
76  		return new Icon(image(defaultImageBundle.trackCloseIcon()), image(defaultImageBundle.trackCloseMouseOverIcon(), "close"));
77  	}
78  
79  	public Icon getConfigButton() {
80  		return new Icon(image(defaultImageBundle.trackConfigcon()), image(defaultImageBundle.trackConfigMouseOverIcon(), "configuration"));
81  	}
82  
83  	public Icon getAdjustHightButton() {
84  		return new Icon(image(defaultImageBundle.trackAdjustHightIcon()), image(defaultImageBundle.trackAdjustHightMouseOverIcon(), "adjust height"));
85  	}
86  
87  	public Icon getFixedHightButton() {
88  		return new Icon(image(defaultImageBundle.trackFixedHightIcon()), image(defaultImageBundle.trackFixedHightMouseOverIcon(), "fixed height"));
89  	}
90  
91  	public Icon getReloadButton() {
92  		return new Icon(image(defaultImageBundle.trackReloadIcon()), image(defaultImageBundle.trackReloadMouseOverIcon(), "reload"));
93  	}
94  
95  	public Icon getOpenButton() {
96  		return new Icon(image(defaultImageBundle.trackOpenIcon()), image(defaultImageBundle.trackOpenMouseOverIcon(), "open"));
97  	}
98  
99  	public Icon getHideButton() {
100 		return new Icon(image(defaultImageBundle.trackHideIcon()), image(defaultImageBundle.trackHideMouseOverIcon(), "hide"));
101 	}
102 
103 	public Switch getOpenHideSwith() {
104 		return new Switch(getOpenButton(), getHideButton());
105 	}
106 
107 	public Switch getAdjustHightSwitch() {
108 		return new Switch(getFixedHightButton(), getAdjustHightButton());
109 	}
110 
111 	public Icon getTabCloseButton() {
112 		return new Icon(image(defaultImageBundle.tabCloseIcon()), image(defaultImageBundle.tabCloseMouseOverIcon(), "close tab"));
113 	}
114 
115 	public NowLoadingIcon getNowLoadingIcon() {
116 		Image loadingImage = new Image("theme/default/trackLoading.gif");
117 		loadingImage.setTitle("loading");
118 		return new NowLoadingIcon(loadingImage, getReloadButton());
119 	}
120 
121 	public static String getWindowBorderColor() {
122 		return "74DAFC";
123 	}
124 
125 	public static String getWindowBorderColorDark() {
126 		return "54BADC";
127 	}
128 
129 	/**
130 	 * Get the path to the image file for the selected theme
131 	 * 
132 	 * @param file
133 	 * @return
134 	 */
135 	public String getImagePath(String file) {
136 		return themeFolder + file;
137 	}
138 
139 }