Child:
[r17]
(diff)
Download this file
pluginSave.old
114 lines (95 with data), 3.5 kB
package test;
import GUI.ListItem;
import GUI.RunPlugins;
import GUI.swingUtils;
import definitions.Messages;
import definitions.is;
import java.io.File;
import script.Plugin;
import script.log;
import studio.core;
/**
*
* @author Nuno Brito, 19th of September 2013 in Darmstadt, Germany.
*/
public class pluginSave extends Plugin{
// we add imports to define the libraries that will be needed on this script
String textSave = "Save changes";
/**
* this method is called after the plugin is installed (only one time)
*/
void install(){
// we call the startup method to get the hook listed on "startup()" launched
// this way we avoided the need to restart winbuilder to activate the hook
startup();
}
/**
* this method is only called when the plugin in uninstalled (only one time)
*/
void uninstall(){
// nothing to do here. You can use this method to do basic cleanup
// of whatever files / traces should be removed from this plugin
}
/**
The initial method that is called upon the startup routine of WinBuilder.
Keep it light, too much code will slow down the overall startup
*/
@Override
public void startup(){
// we are adding a hook here. This hook allows running the "main" method on this script
// hooks are a way of running methods on scripts when a specific message is output to the screen
// this way, hooks can be attached to any message and run any scripts as needed
// we run this at startup to ensure it stays active when the user builds a boot disk
log.hooks.addAction(Messages.ReadyToUse, thisFile, "main");
log.hooks.addAction(Messages.TextWasModified, thisFile, "showSaveButton");
log.hooks.addAction(Messages.TextWasLoaded, thisFile, "hideSaveButton");
log.hooks.addAction("Single-click at " + textSave, thisFile, "doSaveFile");
log.hooks.addAction("Gained focus on Search Box", thisFile, "hideSaveButton");
}
void doSaveFile(){
File target = core.studio.getSPDX().file;
String text = core.studio.getTextBox().getText();
utils.files.SaveStringToFile(target, text);
String message = log.write(is.INFO, "SPDX file %1 was saved to disk",
core.studio.getSPDX().toString());
swingUtils.showMessage(message);
// refresh everything on the tree view
swingUtils.refreshAll(core.studio.getTree());
}
void showSaveButton(){
/**
log.write(is.INFO, "Showing the save button");
list = core.studio.getList();
SortedListModel model = new SortedListModel();
ListItem item = new ListItem();
item.title = "Save";
model.add(item);
list.setModel(model);
*/
if(core.studio.textWasModified == false){
// nothing to show, just exit
return;
}
// a search is being done, nothing to do here
if(core.searchBoxActive){
return;
}
if(core.studio.getTextBox().isEnabled() == false){
// nothing to show, just exit
return;
}
ListItem item = new ListItem();
item.title = textSave;
item.singleClick = true;
File icon = core.getIcon("disk-black.png");
item.setIcon(icon);
RunPlugins.addItem(item);
}
void hideSaveButton(){
RunPlugins.removeItem(textSave);
}
void main(){
// let's warn the end-user about what is going on here
log.write(is.INFO, "PLUGIN ADDED: SPDX save");
}
}