KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > aspectj > ajde > ui > AbstractIconRegistry


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.ajde.ui;
27
28 import org.aspectj.asm.*;
29 import org.aspectj.asm.associations.*;
30
31 /**
32  * Uses the factory pattern.
33  *
34  * @author Mik Kersten
35  */

36 public abstract class AbstractIconRegistry {
37     
38     protected final String JavaDoc RESOURCE_PATH = "org/aspectj/ajde/resources/";
39     protected final String JavaDoc STRUCTURE_PATH = RESOURCE_PATH + "structure/";
40
41     protected final AbstractIcon PROJECT = createIcon(STRUCTURE_PATH + "project.gif");
42     protected final AbstractIcon PACKAGE = createIcon(STRUCTURE_PATH + "package.gif");
43     protected final AbstractIcon ASPECT = createIcon(STRUCTURE_PATH + "aspect.gif");
44     protected final AbstractIcon INITIALIZER = createIcon(STRUCTURE_PATH + "code.gif");
45     protected final AbstractIcon INTRODUCTION = createIcon(STRUCTURE_PATH + "introduction.gif");
46     protected final AbstractIcon CONSTRUCTOR = createIcon(STRUCTURE_PATH + "method.gif");
47     protected final AbstractIcon POINTCUT = createIcon(STRUCTURE_PATH + "pointcut.gif");
48     protected final AbstractIcon ADVICE = createIcon(STRUCTURE_PATH + "advice.gif");
49     protected final AbstractIcon DECLARE_PARENTS = createIcon(STRUCTURE_PATH + "declareParents.gif");
50     protected final AbstractIcon DECLARE_WARNING = createIcon(STRUCTURE_PATH + "declareWarning.gif");
51     protected final AbstractIcon DECLARE_ERROR = createIcon(STRUCTURE_PATH + "declareError.gif");
52     protected final AbstractIcon DECLARE_SOFT = createIcon(STRUCTURE_PATH + "declareSoft.gif");
53     protected final AbstractIcon CODE = createIcon(STRUCTURE_PATH + "code.gif");
54     protected final AbstractIcon ERROR = createIcon(STRUCTURE_PATH + "error.gif");
55     
56     protected final AbstractIcon FILE = createIcon(STRUCTURE_PATH + "file.gif");
57     protected final AbstractIcon FILE_JAVA = createIcon(STRUCTURE_PATH + "file-java.gif");
58     protected final AbstractIcon FILE_ASPECTJ = createIcon(STRUCTURE_PATH + "file-aspectj.gif");
59     protected final AbstractIcon FILE_LST = createIcon(STRUCTURE_PATH + "file-lst.gif");
60     
61     protected final AbstractIcon METHOD = createIcon(STRUCTURE_PATH + "method.gif");
62     protected final AbstractIcon FIELD = createIcon(STRUCTURE_PATH + "field.gif");
63     protected final AbstractIcon CLASS = createIcon(STRUCTURE_PATH + "class.gif");
64     protected final AbstractIcon INTERFACE = createIcon(STRUCTURE_PATH + "interface.gif");
65
66     protected final AbstractIcon RELATION_ADVICE_FORWARD = createIcon(STRUCTURE_PATH + "adviceForward.gif");
67     protected final AbstractIcon RELATION_ADVICE_BACK = createIcon(STRUCTURE_PATH + "adviceBack.gif");
68     protected final AbstractIcon RELATION_INHERITANCE_FORWARD = createIcon(STRUCTURE_PATH + "inheritanceForward.gif");
69     protected final AbstractIcon RELATION_INHERITANCE_BACK = createIcon(STRUCTURE_PATH + "inheritanceBack.gif");
70     protected final AbstractIcon RELATION_REFERENCE_FORWARD = createIcon(STRUCTURE_PATH + "referenceForward.gif");
71     protected final AbstractIcon RELATION_REFERENCE_BACK = createIcon(STRUCTURE_PATH + "referenceBack.gif");
72
73     public AbstractIcon getRelationIcon(Relation relation) {
74         if (relation.getAssociationName().equals(Advice.NAME)) {
75             return RELATION_ADVICE_FORWARD;
76         } else if (relation.getAssociationName().equals(Introduction.NAME)) {
77             return RELATION_ADVICE_FORWARD;
78         } else if (relation.getAssociationName().equals(Inheritance.NAME)) {
79             return RELATION_INHERITANCE_FORWARD;
80         } else {
81             return RELATION_REFERENCE_FORWARD;
82         }
83     }
84
85     /**
86      * @return null if the kind could not be resolved
87      */

88     protected AbstractIcon getStructureIcon(ProgramElementNode.Kind kind, ProgramElementNode.Accessibility accessibility) {
89         return getStructureIcon(kind, ProgramElementNode.Accessibility.PUBLIC);
90     }
91     
92     /**
93      * Assumes "public" visibility for the icon.
94      *
95      * @return null if the kind could not be resolved
96      */

97     public AbstractIcon getStructureIcon(ProgramElementNode.Kind kind) {
98         if (kind == ProgramElementNode.Kind.PROJECT) {
99             return PROJECT;
100         } else if (kind == ProgramElementNode.Kind.PACKAGE) {
101             return PACKAGE;
102         } else if (kind == ProgramElementNode.Kind.FILE) {
103             return FILE;
104         } else if (kind == ProgramElementNode.Kind.FILE_JAVA) {
105             return FILE_JAVA;
106         } else if (kind == ProgramElementNode.Kind.FILE_ASPECTJ) {
107             return FILE_ASPECTJ;
108         } else if (kind == ProgramElementNode.Kind.FILE_LST) {
109             return FILE_LST;
110         } else if (kind == ProgramElementNode.Kind.CLASS) {
111             return CLASS;
112         } else if (kind == ProgramElementNode.Kind.INTERFACE) {
113             return INTERFACE;
114         } else if (kind == ProgramElementNode.Kind.ASPECT) {
115             return ASPECT;
116         } else if (kind == ProgramElementNode.Kind.INITIALIZER) {
117             return INITIALIZER;
118         } else if (kind == ProgramElementNode.Kind.INTRODUCTION) {
119             return INTRODUCTION;
120         } else if (kind == ProgramElementNode.Kind.CONSTRUCTOR) {
121             return CONSTRUCTOR;
122         } else if (kind == ProgramElementNode.Kind.METHOD) {
123             return METHOD;
124         } else if (kind == ProgramElementNode.Kind.FIELD) {
125             return FIELD;
126         } else if (kind == ProgramElementNode.Kind.POINTCUT) {
127             return POINTCUT;
128         } else if (kind == ProgramElementNode.Kind.ADVICE) {
129             return ADVICE;
130         } else if (kind == ProgramElementNode.Kind.DECLARE_PARENTS) {
131             return DECLARE_PARENTS;
132         } else if (kind == ProgramElementNode.Kind.DECLARE_WARNING) {
133             return DECLARE_WARNING;
134         } else if (kind == ProgramElementNode.Kind.DECLARE_ERROR) {
135             return DECLARE_ERROR;
136         } else if (kind == ProgramElementNode.Kind.DECLARE_SOFT) {
137             return DECLARE_SOFT;
138         } else if (kind == ProgramElementNode.Kind.CODE) {
139             return CODE;
140         } else if (kind == ProgramElementNode.Kind.ERROR) {
141             return ERROR;
142         } else {
143             System.err.println("AJDE Message: unresolved icon kind " + kind);
144             return null;
145         }
146     }
147  
148     /**
149      * Implement to create platform-specific icons.
150      */

151     protected abstract AbstractIcon createIcon(String JavaDoc path);
152 }
153
154
155
156
Popular Tags