001: /*
002: * SSHTools - Java SSH2 API
003: *
004: * Copyright (C) 2002-2003 Lee David Painter and Contributors.
005: *
006: * Contributions made by:
007: *
008: * Brett Smith
009: * Richard Pernavas
010: * Erwin Bolwidt
011: *
012: * This program is free software; you can redistribute it and/or
013: * modify it under the terms of the GNU General Public License
014: * as published by the Free Software Foundation; either version 2
015: * of the License, or (at your option) any later version.
016: *
017: * This program is distributed in the hope that it will be useful,
018: * but WITHOUT ANY WARRANTY; without even the implied warranty of
019: * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
020: * GNU General Public License for more details.
021: *
022: * You should have received a copy of the GNU General Public License
023: * along with this program; if not, write to the Free Software
024: * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
025: */
026: package com.sshtools.common.ui;
027:
028: /**
029: * <p>Instances of this class are created by the <code>SessionProviderFactory</code>
030: * for each installed session provider. Instances of this class can be supplied
031: * to the <code>SessionProviderFrame</code> to create windows contains the
032: * session providers service</p>
033: *
034: * @author Lee David Painter
035: * @version $Id: SessionProvider.java,v 1.12 2003/09/22 15:57:57 martianx Exp $
036: */
037: public class SessionProvider {
038: String id;
039: String name;
040: Class cls;
041: String description;
042: char mnemonic;
043: ResourceIcon smallicon;
044: ResourceIcon largeicon;
045: Class[] propertypages;
046: int weight;
047: Class optionsClass;
048:
049: SessionProvider(String id, String name, Class cls,
050: String description, String mnemonic, String smallicon,
051: String largeicon, Class optionsClass,
052: Class[] propertypages, int weight) {
053: this .id = id;
054: this .name = name;
055: this .cls = cls;
056: this .description = description;
057: this .mnemonic = mnemonic.charAt(0);
058: this .propertypages = propertypages;
059: this .optionsClass = optionsClass;
060: this .smallicon = new ResourceIcon(cls, smallicon);
061: this .largeicon = new ResourceIcon(cls, largeicon);
062: this .weight = weight;
063: }
064:
065: /**
066: * Get the name of the provider e.g. 'Terminal Session'.
067: * @return
068: */
069: public String getName() {
070: return name;
071: }
072:
073: /**
074: * Get the class instance for the session providers implementation.
075: * @return
076: */
077: public Class getProviderClass() {
078: return cls;
079: }
080:
081: /**
082: * Get an array of class instances for the providers property pages.
083: * @return
084: */
085: public Class[] getPropertyPages() {
086: return propertypages;
087: }
088:
089: /**
090: * Get the description of the provider e.g. 'Opens a terminal session'
091: * @return
092: */
093: public String getDescription() {
094: return description;
095: }
096:
097: /**
098: * Get the mnemonic character for key access
099: * @return
100: */
101: public char getMnemonic() {
102: return mnemonic;
103: }
104:
105: /**
106: * Get the weight of the provider.
107: * @return
108: */
109: public int getWeight() {
110: return weight;
111: }
112:
113: /**
114: * Get the id of the provider e.g. 'sshterm'.
115: * @return
116: */
117: public String getId() {
118: return id;
119: }
120:
121: /**
122: * Get the small icon of the provider.
123: * @return
124: */
125: public ResourceIcon getSmallIcon() {
126: return smallicon;
127: }
128:
129: /**
130: * Get the large icon of the provider.
131: * @return
132: */
133: public ResourceIcon getLargeIcon() {
134: return largeicon;
135: }
136:
137: /**
138: * Get the options class implementation
139: * @return
140: */
141: public Class getOptionsClass() {
142: return optionsClass;
143: }
144:
145: /**
146: * Compares this session provider against another object. This method
147: * will only return true if the object provided is an instance of
148: * <code>SessionProvider</code> and that the provider id and implementation
149: * class are equal.
150: *
151: * @param obj
152: * @return
153: */
154: public boolean equals(Object obj) {
155: if ((obj != null) && obj instanceof SessionProvider) {
156: SessionProvider provider = (SessionProvider) obj;
157:
158: return provider.id.equals(id)
159: && provider.getProviderClass().equals(cls);
160: }
161:
162: return false;
163: }
164:
165: /**
166: * Returns the name of the provider.
167: * @return
168: */
169: public String toString() {
170: return name;
171: }
172: }
|