Source code: org/aspectj/tools/ajde/jbuilder/JBuilderIconRegistry.java
1
2 /* -*- Mode: Java; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*-
3 *
4 * This file is part of the IDE support for the AspectJ(tm)
5 * programming language; see http://aspectj.org
6 *
7 * The contents of this file are subject to the Mozilla Public License
8 * Version 1.1 (the "License"); you may not use this file except in
9 * compliance with the License. You may obtain a copy of the License at
10 * either http://www.mozilla.org/MPL/ or http://aspectj.org/MPL/.
11 *
12 * Software distributed under the License is distributed on an "AS IS" basis,
13 * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
14 * for the specific language governing rights and limitations under the
15 * License.
16 *
17 * The Original Code is AspectJ.
18 *
19 * The Initial Developer of the Original Code is Xerox Corporation. Portions
20 * created by Xerox Corporation are Copyright (C) 1999-2002 Xerox Corporation.
21 * All Rights Reserved.
22 *
23 * Contributor(s):
24 */
25
26 package org.aspectj.tools.ajde.jbuilder;
27
28 import javax.swing.*;
29 import org.aspectj.ajde.ui.*;
30 import org.aspectj.ajde.ui.swing.*;
31 import com.borland.primetime.ide.BrowserIcons;
32 import com.borland.jbuilder.node.java.*;
33 import org.aspectj.asm.*;
34
35 /**
36 * @author Mik Kersten
37 */
38 public class JBuilderIconRegistry extends IconRegistry {
39
40 //public static final JBuilderIconRegistry INSTANCE = new JBuilderIcons();
41
42 public static final String JBUILDER_RESOURCE_PATH = "org/aspectj/tools/ajde/jbuilder/resources/";
43
44 private final Icon BUILD = makeJBuilderIcon("build.gif");
45 private final Icon DEBUG = makeJBuilderIcon("debug.gif");
46 private final Icon EXECUTE = makeJBuilderIcon("execute.gif");
47 private final Icon OPTIONS = makeJBuilderIcon("options.gif");
48
49 public Icon getBuildIcon() { return BUILD; }
50 public Icon getDebugIcon() { return DEBUG; }
51 public Icon getExecuteIcon() { return EXECUTE; }
52 public Icon getBrowserOptionsIcon() { return OPTIONS; }
53
54 private AbstractIcon wrapIcon(Icon icon) {
55 return new AbstractIcon(icon);
56 }
57
58 protected Icon makeJBuilderIcon(String iconPath) {
59 return new ImageIcon(ClassLoader.getSystemResource(JBUILDER_RESOURCE_PATH + iconPath));
60 }
61
62 public Icon getStructureSwingIcon(ProgramElementNode.Kind kind) {
63 return getStructureSwingIcon(kind, ProgramElementNode.Accessibility.PUBLIC);
64 }
65
66 public AbstractIcon getStructureIcon(ProgramElementNode.Kind kind) {
67 Icon icon = getStructureSwingIcon(kind);
68 if (icon == null) {
69 //System.err.println("> icon: " + super.getStructureIcon(kind));
70 return super.getStructureIcon(kind);
71 } else {
72 return new AbstractIcon(icon);
73 }
74 }
75
76 public Icon getStructureSwingIcon(ProgramElementNode.Kind kind, ProgramElementNode.Accessibility accessibility) {
77 int accessibilityModifier;
78 if (accessibility == ProgramElementNode.Accessibility.PUBLIC) {
79 accessibilityModifier = JavaStructureIcons.PUBLIC;
80 } else if (accessibility == ProgramElementNode.Accessibility.PACKAGE) {
81 accessibilityModifier = JavaStructureIcons.PACKAGE;
82 } else if (accessibility == ProgramElementNode.Accessibility.PROTECTED) {
83 accessibilityModifier = JavaStructureIcons.PROTECTED;
84 } else if (accessibility == ProgramElementNode.Accessibility.PRIVATE) {
85 accessibilityModifier = JavaStructureIcons.PRIVATE;
86 } else {
87 accessibilityModifier = JavaStructureIcons.PUBLIC;
88 }
89
90 if (kind == ProgramElementNode.Kind.METHOD) {
91 return JavaStructureIcons.ICONS_METHOD[accessibilityModifier];
92 } else if (kind == ProgramElementNode.Kind.CONSTRUCTOR) {
93 return JavaStructureIcons.ICONS_CONSTRUCTOR[accessibilityModifier];
94 } else if (kind == ProgramElementNode.Kind.FIELD) {
95 return JavaStructureIcons.ICONS_FIELD[accessibilityModifier];
96 } else if (kind == ProgramElementNode.Kind.INTERFACE) {
97 return JavaStructureIcons.ICONS_INTERFACE[accessibilityModifier];
98 } else if (kind == ProgramElementNode.Kind.CLASS) {
99 return JavaStructureIcons.ICONS_CLASS[accessibilityModifier];
100 } else if (kind == ProgramElementNode.Kind.FILE_JAVA) {
101 return BrowserIcons.ICON_FILEJAVA;
102 } else if (kind == ProgramElementNode.Kind.FILE_ASPECTJ) {
103 return BrowserIcons.ICON_FILEJAVA;
104 } else if (kind == ProgramElementNode.Kind.FILE_LST) {
105 return BrowserIcons.ICON_FILEBINARY;
106 } else if (kind == ProgramElementNode.Kind.PACKAGE) {
107 return BrowserIcons.ICON_PACKAGE;
108 //} else if (kind == ProgramElementNode.Kind.PROJECT) {
109 // return BrowserIcons.ICON_JBPROJECT;
110 } else {
111 return null;//super.getStructureSwingIcon(kind, accessibility);
112 }
113 }
114
115 // public Icon getAccessibilitySwingIcon(ProgramElementNode.Accessibility accessibility) {
116 // JavaStructureIcons.
117 // }
118 }
119