mirror of
https://github.com/badvision/lawless-legends.git
synced 2024-06-16 20:29:30 +00:00
73 lines
2.5 KiB
Java
73 lines
2.5 KiB
Java
package org.badvision.outlaw.plugin.example;
|
|
|
|
import javafx.event.ActionEvent;
|
|
import javax.xml.bind.JAXB;
|
|
import org.apache.felix.scr.annotations.Activate;
|
|
import org.apache.felix.scr.annotations.Component;
|
|
import org.apache.felix.scr.annotations.Deactivate;
|
|
import org.apache.felix.scr.annotations.Reference;
|
|
import org.apache.felix.scr.annotations.Service;
|
|
import org.badvision.outlaweditor.api.ApplicationState;
|
|
import org.badvision.outlaweditor.api.MenuAction;
|
|
import org.badvision.outlaweditor.ui.UIAction;
|
|
import org.osgi.framework.BundleContext;
|
|
|
|
/**
|
|
* This registers a simple plugin that does nothing more than print a message to
|
|
* the console when executed. However, this plugin also demonstrates how to
|
|
* inject dependencies to more useful features, specifically the
|
|
* ApplicationState which in turn provides all game data, etc.
|
|
*
|
|
* @author blurry
|
|
*/
|
|
@Component(immediate = true)
|
|
@Service(MenuAction.class)
|
|
public class ExamplePlugin implements MenuAction {
|
|
|
|
// Note: Because ApplicationState is already a defined service, this will automatically be bound.
|
|
// Hence, it is not necessary to worry about passing it it.
|
|
@Reference
|
|
ApplicationState app;
|
|
|
|
// This is called when our plugin is starting
|
|
@Activate
|
|
public void activate() throws Exception {
|
|
System.out.println("Hello, menu!");
|
|
checkReferences();
|
|
}
|
|
|
|
// This is called when our plugin is stopping
|
|
@Deactivate
|
|
public void stop(BundleContext bc) throws Exception {
|
|
System.out.println("Goodbye, menu!");
|
|
}
|
|
|
|
// This identifies the menu item label
|
|
@Override
|
|
public String getName() {
|
|
return "Example action";
|
|
}
|
|
|
|
// This method is called when the user selects the menu item
|
|
@Override
|
|
public void handle(ActionEvent event) {
|
|
System.out.println("Clicked!");
|
|
JAXB.marshal(ApplicationState.getInstance().getGameData(), System.out);
|
|
checkReferences();
|
|
UIAction.confirm("Did you mean to click that?",
|
|
() -> UIAction.alert("Well isn't that special?"),
|
|
() -> UIAction.alert("You should be more careful next time then."));
|
|
}
|
|
|
|
private void checkReferences() {
|
|
// app = ApplicationState.getInstance();
|
|
if (app == null) {
|
|
System.out.println("App is null?!?!");
|
|
} else if (app.getCurrentPlatform() == null) {
|
|
System.out.println("Current platform is null?");
|
|
} else {
|
|
System.out.println("Current platform is " + app.getCurrentPlatform());
|
|
}
|
|
}
|
|
}
|