001: //The contents of this file are subject to the Mozilla Public License Version 1.1
002: //(the "License"); you may not use this file except in compliance with the
003: //License. You may obtain a copy of the License at http://www.mozilla.org/MPL/
004: //
005: //Software distributed under the License is distributed on an "AS IS" basis,
006: //WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
007: //for the specific language governing rights and
008: //limitations under the License.
009: //
010: //The Original Code is "The Columba Project"
011: //
012: //The Initial Developers of the Original Code are Frederik Dietz and Timo Stich.
013: //Portions created by Frederik Dietz and Timo Stich are Copyright (C) 2003.
014: //
015: //All Rights Reserved.
016: package org.columba.core.gui.plugin;
017:
018: import javax.swing.tree.DefaultMutableTreeNode;
019:
020: import org.columba.core.plugin.PluginManager;
021:
022: /**
023: * @author frd
024: *
025: * To change the template for this generated type comment go to
026: * Window>Preferences>Java>Code Generation>Code and Comments
027: */
028: public class PluginNode extends DefaultMutableTreeNode {
029:
030: private static final java.util.logging.Logger LOG = java.util.logging.Logger
031: .getLogger("org.columba.core.gui.plugin"); //$NON-NLS-1$
032:
033: String id;
034: String version;
035: String tooltip;
036: boolean category;
037: boolean enabled;
038:
039: /** Lazily created Boolean stating if the plugin has info or not, can be null. */
040: Boolean hasInfo;
041:
042: public PluginNode() {
043: category = false;
044: }
045:
046: /**
047: * @param arg0
048: */
049: public PluginNode(Object arg0) {
050: super (arg0);
051:
052: category = false;
053: }
054:
055: /**
056: * @return
057: */
058: public String getId() {
059: return id;
060: }
061:
062: /**
063: * @return
064: */
065: public boolean isEnabled() {
066: return enabled;
067: }
068:
069: /**
070: * @param string
071: */
072: public void setId(String string) {
073: id = string;
074: }
075:
076: /**
077: * @param b
078: */
079: public void setEnabled(boolean b) {
080: enabled = b;
081: }
082:
083: /**
084: * @return
085: */
086: public String getTooltip() {
087: return tooltip;
088: }
089:
090: /**
091: * @param string
092: */
093: public void setTooltip(String string) {
094: tooltip = string;
095: }
096:
097: /**
098: * @return
099: */
100: public String getVersion() {
101: return version;
102: }
103:
104: /**
105: * @param string
106: */
107: public void setVersion(String string) {
108: version = string;
109: }
110:
111: /**
112: * @return
113: */
114: public boolean isCategory() {
115: return category;
116: }
117:
118: /**
119: * @param b
120: */
121: public void setCategory(boolean b) {
122: category = b;
123: }
124:
125: /**
126: * Returns true if the plugin has information about the plugin.
127: * This attribute is created lazily, and may take a while since it
128: * has to check for files on the file system. (Using the <code>PluginManager</code>.)
129: * @return true if the plugin has info files; false if it doesnt have an info file.
130: */
131: public boolean hasInfo() {
132: if (hasInfo == null) {
133: hasInfo = Boolean.valueOf(PluginManager.getInstance()
134: .getInfoURL(id) != null);
135: }
136:
137: return hasInfo.booleanValue();
138: }
139:
140: public void debug() {
141: LOG.info("id=" + id); //$NON-NLS-1$
142: LOG.info("version=" + version); //$NON-NLS-1$
143: LOG.info("enabled=" + enabled); //$NON-NLS-1$
144: LOG.info("isCategory=" + category); //$NON-NLS-1$
145: LOG.info("description=" + tooltip); //$NON-NLS-1$
146: LOG.info("hasInfo=" + hasInfo()); //$NON-NLS-1$
147: }
148: }
|