Quellcode für ein leeres Plugin

Hier finden Sie bereits zwei Java-Quellcode-Dateien, welche ein komplettes eigenes, aber funktionsloses Modul für den AlphaAgent darstellen:

package de.mydomain.alphaagent.example;
 
import java.awt.BorderLayout;
import java.awt.Color;
import java.net.URL;
 
import javax.swing.Icon;
import javax.swing.ImageIcon;
import javax.swing.JMenuBar;
import javax.swing.JPanel;
import javax.swing.JRootPane;
 
import com.sowas.alphaagent._main.CaptionPanel;
import com.sowas.alphaagent._main.MainPane;
import com.sowas.alphaagent._main.folder.FolderItem;
import com.sowas.alphaagent._main.folder.FolderPanel;
import com.sowas.lib.application.alphaagent.IFolderConstants;
import com.sowas.libalphasi.IAlphaAgentPlugin;
import com.sowas.libalphasi._main.data.IPassDataListener;
import com.sowas.libalphasi._main.data.PassDataset;
 
/**
 * Ein beispielhaftes Plugin für den AlphaAgent.
 * Dieses Plguin hat keine echte Funktionalität.
 * Es kann aber gut als Grundlage für neue Plugins verwendet werden.
 *  
 * @author Norbert Schaefers <n.schaefers@sowas.com>
 */
public class ExamplePlugin	extends JPanel implements IAlphaAgentPlugin, IFolderConstants, IPassDataListener {
	public static final String	TI_HELP = "Hilfe";  // ToolbarItem
	public static final String TT_HELP = "Hilfe anzeigen";  // Tooltip
	public static final String	MENUVIEWNAME = "Beispiel";
        CaptionPanel					captionPanel;
        MainPane						   mainPane;
        ExamplePanel					examplePanel = null;
        ImageIcon 						iconHelp;
 
        /**
         * Erzeugt das ExamplePlugin.
         */
	public ExamplePlugin() {
		super();
	}
 
	/**
	 * Initialisiert die Sprache
	 * 
	 * @param strLang	Kürzel für die Sprache (z.B. de, at, ch, fr)
	 */
	public void initPlugin(String strBaseDir, String strLang){
	}
 
        /**
	 * Liefert den Namen des Plugins, welcher auch für das Menü verwendet wird.
	 * Gleichzeitig wird diese Name auch für die Indentifizierung des Plugins verwendet.
	 * Der Name ist daher konstant, aber grundsätzlich frei wählbar 
	 * (darf also einen anderen Namen als das Plugin selbst haben).
	 */
	public String getMenuViewName() {
		return MENUVIEWNAME;
	}
 
	/**
	 * Liefert dieses Plugin zurück.
	 * 
	 * @return Dieses Plugin.
	 */
	public JPanel getPluginPanel() {
		return this;
	}
 
	/**
	 * Liefert das Icon für den FolderTree
	 * 
	 * @return Das Icon oder null
	 */
        public Icon getFolderIcon() {
             return null;
        }
 
        /**
	 * Liefert das Panel für die Übersicht zurück.
	 * @return Das Panel.
	 */
	public JPanel getOverviewPanel(){
		return null;
	}
 
	/**
	 * Wird einmal beim ersten Start des Plugins aufgerufen (beim Start des Hauptprogramms).
	 * Erzeugt das CaptionPanel und das ExamplePanel.
	 * Außerdem wird ein Symbol zum Symbolpanel hinzugefügt und ein Eintrag in die Ordneransicht 
	 * gemacht.
	 */
	public synchronized void startup(JRootPane rootPane, String strBaseDir){
		mainPane=(MainPane)rootPane;
 
		setLayout(new BorderLayout());
		setBackground(new Color(232, 232, 232));
 
		// Die Überschrift:
		captionPanel = new CaptionPanel(ExamplePlugin.MENUVIEWNAME);
		add(captionPanel, BorderLayout.NORTH);
 
		// Das Hauptpanel für dieses Plugin wird erzeugt:
		examplePanel = new ExamplePanel(mainPane, this);
		add(examplePanel, BorderLayout.CENTER);
 
		// Benötigte Images werden geladen:
		URL urlImage = null;
		try {
			urlImage = new URL(strBaseDir + "images/ger_example.gif");
			iconHelp = new ImageIcon(new URL(mainPane.getBaseURL() + "/images/help.gif"));
		} catch (Exception e) {
			e.printStackTrace();
		}
 
		// Der große Button für die Symbolleiste ganz links wird erzeugt:
		// Es wird kein Listener (null) übergeben.
		mainPane.addSymbolItem(new ImageIcon(urlImage), getMenuViewName(), null);
 
		// Ein Eintrag für die Ordneransicht wird erzeugt:
		FolderItem fiExample = new FolderItem(getMenuViewName(), FOLDERID_EXAMPLE);
		fiExample.setAllowsChildren(false);  // Keine Unterordner erlaubt
		// Der gerade erzeugte Eintrag wird nun der Ordneransicht hinzugefügt.
		// Hier wird kein Listener (null) übergeben.
		mainPane.addFolderItem(null, fiExample, FolderPanel.NOTEXPANDED, null, false);
	}
 
	/**
	 * Wird einmal zum Beenden aufgerufen (meist beim Beenden des Hauptprogramms).
	 * Kann für "Aufräumarbeiten" verwendet werden.
	 */
	public void shutdown() {
	}
 
	/**
	 * Wird jedesmal aufgerufen, wenn das Panel des Plugins in den Vordergrund geholt wird.
	 * Dabei werden z.B. die Einträge in die Toolbar gemacht.
	 */
	public void activate() {
		examplePanel.activate();
 
		// Erzeugen eines Hilfe-Buttons in der Toolbar:
		// Als Listener wird examplePanel angegeben, in dessen actionPerformed(..) das Betätigen des
		// Buttons bearbeitet wird.
		mainPane.addToolbarItem(TI_HELP, iconHelp, TT_HELP, examplePanel, true).setTextVisible(false);
	}
 
	/**
	 * Wird aufgerufen, wenn das Panel eines anderen Plugins in den Vordergrund kommt.
	 * Muss alle Einträge aus der Toolbar löschen, da diese 
	 * ja für jedes Plugin unterschiedlich sein können.
	 */
	public void deactivate() {
            examplePanel.deactivate();
            mainPane.removeToolbarItem(TI_HELP);
	}
 
	/**
	 * Der Ordner im FolderPanel wurde geändert.
	 */
	public void folderChanged(){
	}
 
	/**
	 * Interface-Methode für eine optional(!!) zu verwende Kommunikation mit anderen Plugins. 
	 * Bearbeitet die "Aufträge", welche von den anderen Plugins kommen.
	 * Jedes Plugin, welches Funktionen und/oder Daten zur Verfügung stellen möchte, ist selber
	 * für dafür zuständig und muss dies dokumentieren.
	 * 
	 * @param pc Die zu verarbeitenden Daten.
	 * @return   Wenn die Verarbeitung geklappt hat das Ergebnis, sonst null.
	 */
	public Object processPassData(PassDataset pc) {
		return null;
	}
 
	public int getLicencePos(){
		return -1;
	}
 
	public JMenuBar buildMenuBar(){
		return null;
	}
}


package de.mydomain.alphaagent.example;
 
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
 
import javax.swing.JOptionPane;
import javax.swing.JPanel;
 
import com.sowas.alphaagent._main.MainPane;
 
/**
 * Repräsentiert das HauptPanel des Example-Modules.
 * In diesem findet die Anzeige/Verarbeitung der Daten statt.
 * 
 * @author Norbert Schäfers <n.schaefers@sowas.com>
 */
public class ExamplePanel extends JPanel implements ActionListener {
	MainPane mainPane;
	ExamplePlugin examplePlugin;
 
	/**
	 * Erzeugt das HauptPanel.
	 * 
	 * @param mainPane
	 * @param examplePlugin
	 */
	public ExamplePanel(MainPane mainPane, ExamplePlugin examplePlugin) {
		super();
		this.mainPane = mainPane;
		this.examplePlugin = examplePlugin;
		init();
	}
 
	private void init() {
	}
 
	public void activate() {
	}
 
	public void deactivate() {
	}
 
	public void actionPerformed(ActionEvent e) {
		if (e.getActionCommand().equals(ExamplePlugin.TI_HELP)){
			JOptionPane.showMessageDialog(this, "Hilfe?\nSelber nachdenken! ;-)");
		}
	}
 
}


 

Strict Standards: Only variables should be passed by reference in /homepages/32/d69930110/htdocs/de.alphaagent/index.php on line 80