package com.hackerdude.apps.sqlide.pluginapi;
import javax.swing.Action;
import javax.swing.Icon;
/**
* This is the basic interface for version 2 of the plugin
* architecture.
*
* <P>This interface and its descendants replace the
* SqlIdePluginBaseIF and SqlIdePluginIF in the
* com.hackerdude.apps.sqlide.intf package.
*
* <P>This new version of the plugin architecture includes:
*
* <UL>
* <LI>An actual architected approach we can expand upon.</LI>
* <LI>Three types of plugins; <B>Non-Visual</B>, <B>Visual</B>, and
* <B>Node Context</B>. Your plugin can become all of these at the
* same time by implementing all interfaces, or each of them
* independently.</LI>
* <LI>Abstract plugins for Visual plugins for ease of development.</LI>
* </UL>
*/
public interface IDEPluginIF {
public final Action[] NULL_ACTIONS = {};
/**
* This call initializes the plug-in for operation.
* <P>You can trust the SQL-IDE will call this function
* when it is instantiating your plugin for operation,
* as opposed of discovery.
*/
public void initPlugin();
/**
* Implement this call to return the plug-in name.
*
* <P>Note: Your plugin might be instantiated several times
* just to find its metadata (name, version, etc). Please try
* to keep your constructors to a minimum.
*/
public String getPluginName();
/**
* Implement this call to return the plug-in version.
*
* <P>Note: Your plugin might be instantiated several times
* just to find its metadata (name, version, etc). Please try
* to keep your constructors to a minimum.
*/
public String getPluginVersion();
/**
* Implement this call to free the plugin's resources. This method
* is called when SQLIDE wants this plugin to stop running.
*/
void freePlugin();
public String getPluginShortName();
public Icon getPluginIcon();
}