forked from Coded/SIPRP
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
96 lines
1.7 KiB
96 lines
1.7 KiB
package leaf;
|
|
|
|
import java.lang.annotation.Retention;
|
|
import java.lang.annotation.RetentionPolicy;
|
|
import java.util.ArrayList;
|
|
import java.util.List;
|
|
|
|
|
|
public class LeafLogic
|
|
{
|
|
|
|
/**
|
|
* Declares an Action
|
|
*
|
|
* @author tsimao
|
|
*
|
|
*/
|
|
@Retention(RetentionPolicy.RUNTIME)
|
|
public @interface Action
|
|
{
|
|
/**
|
|
* true - this action saves data to de database from the components
|
|
* false - this action reads from the database to the components
|
|
*/
|
|
boolean isSave();
|
|
}
|
|
|
|
/**
|
|
* Binds a UI method with an action
|
|
*
|
|
* @author tsimao
|
|
*
|
|
*/
|
|
@Retention(RetentionPolicy.RUNTIME)
|
|
public @interface LeafUIActionBinding
|
|
{
|
|
|
|
/**
|
|
* The name of the action this method binds to
|
|
*/
|
|
String [] action();
|
|
}
|
|
|
|
/**
|
|
* Binds a logic methods with a group of actions
|
|
*
|
|
* @author tsimao
|
|
*
|
|
*/
|
|
@Retention(RetentionPolicy.RUNTIME)
|
|
public @interface LeafLogicActionBinding
|
|
{
|
|
|
|
/**
|
|
* The name of the action this method binds to
|
|
*/
|
|
String [] actions();
|
|
}
|
|
|
|
@Action(isSave = false)
|
|
public static final String ACTION_STARTUP = "ACTION_STARTUP";
|
|
|
|
@Action(isSave = false)
|
|
public static final String ACTION_CANCEL = "ACTION_CANCEL";
|
|
|
|
|
|
private List<LeafWindow> registeredWindows = new ArrayList<LeafWindow>();
|
|
|
|
public void addWindow(LeafWindow window)
|
|
{
|
|
registeredWindows .add(window);
|
|
}
|
|
|
|
public void runAction( String actionName )
|
|
{
|
|
runAction( actionName, null );
|
|
}
|
|
|
|
public void runAction( String actionName, Object argument )
|
|
{
|
|
for( LeafWindow window : registeredWindows )
|
|
{
|
|
window.runAction( actionName, argument );
|
|
}
|
|
}
|
|
|
|
public void runActionLater( String actionName )
|
|
{
|
|
for( LeafWindow window : registeredWindows )
|
|
{
|
|
window.runActionLater( actionName );
|
|
}
|
|
}
|
|
|
|
}
|