kjavaapplet.cpp
00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022 #include "kjavaappletwidget.h"
00023 #include "kjavaappletcontext.h"
00024
00025 #include <klocale.h>
00026 #include <kdebug.h>
00027
00028
00029
00030 class KJavaAppletPrivate
00031 {
00032 public:
00033 bool reallyExists;
00034 QString className;
00035 QString appName;
00036 QString baseURL;
00037 QString codeBase;
00038 QString archives;
00039 QSize size;
00040 QString windowName;
00041 KJavaApplet::AppletState state;
00042 bool failed;
00043
00044 KJavaAppletWidget* UIwidget;
00045 };
00046
00047
00048 KJavaApplet::KJavaApplet( KJavaAppletWidget* _parent,
00049 KJavaAppletContext* _context )
00050 : params()
00051 {
00052 d = new KJavaAppletPrivate;
00053
00054 d->UIwidget = _parent;
00055 d->state = UNKNOWN;
00056 d->failed = false;
00057
00058 if( _context )
00059 setAppletContext( _context );
00060
00061 d->reallyExists = false;
00062 }
00063
00064 KJavaApplet::~KJavaApplet()
00065 {
00066 if ( d->reallyExists )
00067 context->destroy( this );
00068
00069 delete d;
00070 }
00071
00072 bool KJavaApplet::isCreated()
00073 {
00074 return d->reallyExists;
00075 }
00076
00077 void KJavaApplet::setAppletContext( KJavaAppletContext* _context )
00078 {
00079 context = _context;
00080 context->registerApplet( this );
00081 }
00082
00083 void KJavaApplet::setAppletClass( const QString& _className )
00084 {
00085 d->className = _className;
00086 }
00087
00088 QString& KJavaApplet::appletClass()
00089 {
00090 return d->className;
00091 }
00092
00093 QString& KJavaApplet::parameter( const QString& name )
00094 {
00095 return params[ name ];
00096 }
00097
00098 void KJavaApplet::setParameter( const QString& name, const QString& value )
00099 {
00100 params.insert( name, value );
00101 }
00102
00103 QMap<QString,QString>& KJavaApplet::getParams()
00104 {
00105 return params;
00106 }
00107
00108 void KJavaApplet::setBaseURL( const QString& baseURL )
00109 {
00110 d->baseURL = baseURL;
00111 }
00112
00113 QString& KJavaApplet::baseURL()
00114 {
00115 return d->baseURL;
00116 }
00117
00118 void KJavaApplet::setCodeBase( const QString& codeBase )
00119 {
00120 d->codeBase = codeBase;
00121 }
00122
00123 QString& KJavaApplet::codeBase()
00124 {
00125 return d->codeBase;
00126 }
00127
00128 void KJavaApplet::setSize( QSize size )
00129 {
00130 d->size = size;
00131 }
00132
00133 QSize KJavaApplet::size()
00134 {
00135 return d->size;
00136 }
00137
00138 void KJavaApplet::setArchives( const QString& _archives )
00139 {
00140 d->archives = _archives;
00141 }
00142
00143 QString& KJavaApplet::archives()
00144 {
00145 return d->archives;
00146 }
00147
00148 void KJavaApplet::resizeAppletWidget( int width, int height )
00149 {
00150 kdDebug(6100) << "KJavaApplet, id = " << id << ", ::resizeAppletWidget to " << width << ", " << height << endl;
00151
00152 if( d->UIwidget )
00153 d->UIwidget->resize( width, height );
00154 }
00155
00156 void KJavaApplet::setAppletName( const QString& name )
00157 {
00158 d->appName = name;
00159 }
00160
00161 void KJavaApplet::setWindowName( const QString& title )
00162 {
00163 d->windowName = title;
00164 }
00165
00166 QString& KJavaApplet::getWindowName()
00167 {
00168 return d->windowName;
00169 }
00170
00171 QString& KJavaApplet::appletName()
00172 {
00173 return d->appName;
00174 }
00175
00176 void KJavaApplet::create( )
00177 {
00178 if ( !context->create( this ) )
00179 setFailed();
00180 d->reallyExists = true;
00181 }
00182
00183 void KJavaApplet::init()
00184 {
00185 context->init( this );
00186 }
00187
00188 void KJavaApplet::start()
00189 {
00190 context->start( this );
00191 }
00192
00193 void KJavaApplet::stop()
00194 {
00195 context->stop( this );
00196 }
00197
00198 int KJavaApplet::appletId()
00199 {
00200 return id;
00201 }
00202
00203 void KJavaApplet::setAppletId( int _id )
00204 {
00205 id = _id;
00206 }
00207
00208 void KJavaApplet::stateChange( const int newStateInt ) {
00209 AppletState newState = (AppletState)newStateInt;
00210 bool ok = false;
00211 if (d->failed) {
00212 return;
00213 }
00214 switch ( newState ) {
00215 case CLASS_LOADED:
00216 ok = (d->state == UNKNOWN);
00217 break;
00218 case INSTANCIATED:
00219 if (ok) {
00220 showStatus(i18n("Initializing Applet \"%1\"...").arg(appletName()));
00221 }
00222 ok = (d->state == CLASS_LOADED);
00223 break;
00224 case INITIALIZED:
00225 ok = (d->state == INSTANCIATED);
00226 if (ok) {
00227 showStatus(i18n("Starting Applet \"%1\"...").arg(appletName()));
00228 start();
00229 }
00230 break;
00231 case STARTED:
00232 ok = (d->state == INITIALIZED || d->state == STOPPED);
00233 if (ok) {
00234 showStatus(i18n("Applet \"%1\" started").arg(appletName()));
00235 }
00236 break;
00237 case STOPPED:
00238 ok = (d->state == INITIALIZED || d->state == STARTED);
00239 if (ok) {
00240 showStatus(i18n("Applet \"%1\" stopped").arg(appletName()));
00241 }
00242 break;
00243 case DESTROYED:
00244 ok = true;
00245 break;
00246 default:
00247 break;
00248 }
00249 if (ok) {
00250 d->state = newState;
00251 } else {
00252 kdError(6100) << "KJavaApplet::stateChange : don't want to switch from state "
00253 << d->state << " to " << newState << endl;
00254 }
00255 }
00256
00257 void KJavaApplet::showStatus(const QString &msg) {
00258 QStringList args;
00259 args << msg;
00260 context->processCmd("showstatus", args);
00261 }
00262
00263 void KJavaApplet::setFailed() {
00264 d->failed = true;
00265 }
00266
00267 bool KJavaApplet::isAlive() const {
00268 return (
00269 !d->failed
00270 && d->state >= INSTANCIATED
00271 && d->state < STOPPED
00272 );
00273 }
00274
00275 KJavaApplet::AppletState KJavaApplet::state() const {
00276 return d->state;
00277 }
00278
00279 bool KJavaApplet::failed() const {
00280 return d->failed;
00281 }
00282
00283 #include "kjavaapplet.moc"
This file is part of the documentation for khtml Library Version 3.2.0.