PhpProjectDriver.java Sample

This topic inludes the source code for the PhpProjectDriver.java Sample.

Sample Location

This sample is located in the following directory in your WebLogic Workshop installation:

BEA_HOME/weblogic81/samples/workshop/ExtensionDevKit/IdeDevKit/CustomProject/src/ideExtensions/customProject/

Sample Source Code


01 package ideExtensions.customProject; 
02 
03 import com.bea.ide.Application;
04 import com.bea.ide.core.MessageSvc;
05 import com.bea.ide.filesystem.IFile;
06 import com.bea.ide.workspace.IProject;
07 import com.bea.ide.workspace.IWorkspace;
08 import com.bea.ide.workspace.project.IProjectDriver;
09 
10 /**
11  * A project driver loaded for each project of the PHP project type.  
12  * A project driver implements IProjectDriver, whose two methods,
13  * activate and deactivate, provide a way for you to associate code
14  * with the start and end of a project's use in an application. 
15  
16  * This sample shows a typical use of these methods: adding and removing
17  * listeners. By adding a property event listener in the driver's
18  * activate method and removing it in the deactivate method, you 
19  * associate the listener with the project for the duration of 
20  * the project's use. In this way you can listen for IDE-, 
21  * application- and document-related events and changes to properties
22  * defined by WebLogic Workshop.
23  */
24 public class PhpProjectDriver implements IProjectDriver
25 
26     IProject m_project = null;
27     PhpProjectListener m_listener = null;
28 
29     /**
30      * Constructs a new instance of this driver using the 
31      * property with which this instance is associated. A
32      * project driver must provide a constructor that takes
33      * an IProject instance. If multiple projects of this type
34      * are included in the application, then multiple instances
35      * of this driver will be created, one for each project.
36      
37      @param project The project with which this driver instance
38      * is associated.
39      */
40     public PhpProjectDriver(IProject project)
41     {
42         m_project = project;
43         /**
44          * Create a listener with the project associated with
45          * this instance of the driver.
46          */ 
47         m_listener = new PhpProjectListener(m_project);
48     }
49     
50     /**
51      * Called by the IDE when a project of this type is activated, such as
52      * when a project of this type is discovered to be present in 
53      * the open application.
54      */
55     public void activate()
56     {
57         /**
58          * Add a listener that will be used for changes to the PROP_InitLevel
59          * property. This property's value changes to track progress of the IDE's 
60          * startup.
61          */
62         Application.get().addPropertyChangeListener(Application.PROP_InitLevel, m_listener);           
63     }
64     
65     /**
66      * Called by the IDE when a project of this type is deactivated, such as 
67      * when a project of this type is removed from the open application.
68      */
69     public void deactivate()
70     {
71         /**
72          * Remove the listener that was added when this project 
73          * type was activated.
74          */
75         Application.get().removePropertyChangeListener(m_listener);
76     }
77