int[] selectedIds = getSelectedIds(selections);
GWTServiceLookup.getPluginService().enableAgentPlugins(selectedIds,
new AsyncCallback<ArrayList<String>>() {
@Override
public void onSuccess(ArrayList<String> result) {
Message msg = new Message(MSG.view_admin_plugins_enabledAgentPlugins(result.toString()),
Severity.Info);
CoreGUI.getMessageCenter().notify(msg);
refresh();
}
@Override
public void onFailure(Throwable caught) {
CoreGUI.getErrorHandler()
.handleError(
MSG.view_admin_plugins_enabledAgentPluginsFailure() + " " + caught.getMessage(),
caught);
refreshTableInfo();
}
});
}
});
addTableAction(MSG.common_button_disable(), new AuthorizedTableAction(this, TableActionEnablement.ANY,
Permission.MANAGE_SETTINGS) {
public void executeAction(final ListGridRecord[] selections, Object actionValue) {
ArrayList<String> selectedNames = getSelectedNames(selections);
String message = MSG.view_admin_plugins_agentDisableConfirm(selectedNames.toString());
SC.ask(message, new BooleanCallback() {
public void execute(Boolean confirmed) {
if (confirmed) {
int[] selectedIds = getSelectedIds(selections);
GWTServiceLookup.getPluginService().disableAgentPlugins(selectedIds,
new AsyncCallback<ArrayList<String>>() {
@Override
public void onSuccess(ArrayList<String> result) {
Message msg = new Message(MSG.view_admin_plugins_disabledAgentPlugins(result
.toString()), Severity.Info);
CoreGUI.getMessageCenter().notify(msg);
refresh();
}
@Override
public void onFailure(Throwable caught) {
CoreGUI.getErrorHandler().handleError(
MSG.view_admin_plugins_disabledAgentPluginsFailure() + " "
+ caught.getMessage(), caught);
refreshTableInfo();
}
});
} else {
refreshTableInfo();
}
}
});
}
});
addTableAction(MSG.common_button_delete(), ButtonColor.RED, new AuthorizedTableAction(this, TableActionEnablement.ANY,
Permission.MANAGE_SETTINGS) {
public void executeAction(final ListGridRecord[] selections, Object actionValue) {
ArrayList<String> selectedNames = getSelectedNames(selections);
String message = MSG.view_admin_plugins_agentDeleteConfirm(selectedNames.toString());
SC.ask(message, new BooleanCallback() {
public void execute(Boolean confirmed) {
if (confirmed) {
int[] selectedIds = getSelectedIds(selections);
GWTServiceLookup.getPluginService().deleteAgentPlugins(selectedIds,
new AsyncCallback<ArrayList<String>>() {
@Override
public void onSuccess(ArrayList<String> result) {
Message msg = new Message(MSG.view_admin_plugins_deletedAgentPlugins(result
.toString()), Severity.Info);
CoreGUI.getMessageCenter().notify(msg);
refresh();
}
@Override
public void onFailure(Throwable caught) {
CoreGUI.getErrorHandler().handleError(
MSG.view_admin_plugins_deletedAgentPluginsFailure() + " "
+ caught.getMessage(), caught);
refreshTableInfo();
}
});
} else {
refreshTableInfo();
}
}
});
}
});
IButton updateOnAgentsButton = new EnhancedIButton(MSG.view_admin_plugins_update_on_agents(), ButtonColor.BLUE);
updateOnAgentsButton.addClickHandler(new ClickHandler() {
@Override
public void onClick(ClickEvent clickEvent) {
VLayout layout = new VLayout();
final PopupWindow w = new PopupWindow(null);
Canvas nowCanvas = new Canvas();
nowCanvas.setWidth(1);
nowCanvas.setHeight(1);
DynamicForm delayForm = new DynamicForm();
delayForm.setTitleOrientation(TitleOrientation.TOP);
TreeSet<TimeUnit> timeUnits = new TreeSet<TimeUnit>();
timeUnits.add(TimeUnit.SECONDS);
timeUnits.add(TimeUnit.MINUTES);
timeUnits.add(TimeUnit.HOURS);
timeUnits.add(TimeUnit.DAYS);
final DurationItem startDelay = new DurationItem("duration", "", timeUnits, false, false);
delayForm.setFields(startDelay);
DynamicForm scheduleForm = new DynamicForm();
final DateTimeItem schedule = new DateTimeItem("schedule");
schedule.setEnforceDate(true);
schedule.setCenturyThreshold(99);
schedule.setShowTitle(false);
schedule.setStartDate(new Date());
schedule.setUseMask(true);
schedule.setShowHint(true);
scheduleForm.setFields(schedule);
LinkedHashMap<String, Canvas> items = new LinkedHashMap<String, Canvas>();
items.put(MSG.view_admin_plugins_update_on_agents_now(), nowCanvas);
items.put(MSG.view_admin_plugins_update_on_agents_delayed(), delayForm);
items.put(MSG.view_admin_plugins_update_on_agents_scheduled(), scheduleForm);
DynamicForm form = new DynamicForm();
form.setWidth(300);
final RadioGroupWithComponentsItem scheduling = new RadioGroupWithComponentsItem("scheduling", "", items, form);
form.setFields(scheduling);
layout.addMember(form);
ButtonItem ok = new ButtonItem("ok", MSG.common_button_ok());
ok.setEndRow(false);
ok.setAlign(Alignment.RIGHT);
ButtonItem cancel = new ButtonItem("cancel", MSG.common_button_cancel());
cancel.setStartRow(false);
cancel.setAlign(Alignment.LEFT);
DynamicForm buttons = new DynamicForm();
buttons.setNumCols(2);
buttons.setFields(ok, cancel);
layout.addMember(buttons);
ok.addClickHandler(new com.smartgwt.client.widgets.form.fields.events.ClickHandler() {
@Override
public void onClick(com.smartgwt.client.widgets.form.fields.events.ClickEvent clickEvent) {
long delay;
if (MSG.view_admin_plugins_update_on_agents_now().equals(scheduling.getSelected())) {
delay = 0;
} else if (MSG.view_admin_plugins_update_on_agents_delayed().equals(scheduling.getSelected())) {
Integer value = (Integer) startDelay.getValue();
TimeUnit u = startDelay.getValueUnit();
if (value == null) {
CoreGUI.getErrorHandler()
.handleError(MSG.view_admin_plugins_update_on_agents_no_time_specified());
w.hide();
return;
}
delay = value;
switch (u) {
case SECONDS:
delay *= 1000;
break;
case MINUTES:
delay *= 60 * 1000;
break;
case HOURS:
delay *= 60 * 60 * 1000;
break;
case DAYS:
delay *= 24 * 60 * 60 * 1000;
break;
}
} else {
Date scheduledDate = schedule.getValueAsDate();
delay = scheduledDate.getTime() - new Date().getTime();
}
GWT.log("About to schedule update of the plugins on the agent in " + delay + " milliseconds.");
GWTServiceLookup.getPluginService().updatePluginsOnAgents(delay, new AsyncCallback<Void>() {
@Override
public void onFailure(Throwable caught) {
CoreGUI.getErrorHandler().handleError(
MSG.view_admin_plugins_update_on_agents_failure() + " " +
caught.getMessage(), caught);
w.hide();
}
@Override
public void onSuccess(Void result) {
w.hide();
}
});
}
});
scheduling.setValue(MSG.view_admin_plugins_update_on_agents_now());
cancel.addClickHandler(new com.smartgwt.client.widgets.form.fields.events.ClickHandler() {
@Override
public void onClick(com.smartgwt.client.widgets.form.fields.events.ClickEvent clickEvent) {
w.hide();
}
});
w.addItem(layout);
w.setTitle(MSG.view_admin_plugins_update_on_agents());
w.setHeight(200);
w.setWidth(340);
w.show();
}
});
IButton scanForUpdatesButton = new EnhancedIButton(MSG.view_admin_plugins_scan());
scanForUpdatesButton.addClickHandler(new ClickHandler() {
public void onClick(ClickEvent event) {
GWTServiceLookup.getPluginService().scanAndRegister(new AsyncCallback<Void>() {
@Override
public void onSuccess(Void result) {
Message msg = new Message(MSG.view_admin_plugins_scanComplete(), Severity.Info);
CoreGUI.getMessageCenter().notify(msg);
refresh();
}
@Override