use of cz.metacentrum.perun.webgui.model.ExecService in project perun by CESNET.
the class AddDependencyTabItem method draw.
public Widget draw() {
// TITLE
titleWidget.setText("Add dependency");
final VerticalPanel vp = new VerticalPanel();
vp.setSize("100%", "100%");
// prepares layout
FlexTable layout = new FlexTable();
layout.setStyleName("inputFormFlexTable");
FlexCellFormatter cellFormatter = layout.getFlexCellFormatter();
// close tab events
final TabItem tab = this;
TabMenu menu = new TabMenu();
final ListBoxWithObjects<ExecService> listBox = new ListBoxWithObjects<ExecService>();
final CustomButton addButton = TabMenu.getPredefinedButton(ButtonType.ADD, ButtonTranslation.INSTANCE.addDependantExecService());
// fill listbox after callback finishes
final JsonCallbackEvents localEvents = new JsonCallbackEvents() {
@Override
public void onFinished(JavaScriptObject jso) {
listBox.clear();
ArrayList<ExecService> execs = JsonUtils.jsoAsList(jso);
if (execs != null && !execs.isEmpty()) {
execs = new TableSorter<ExecService>().sortByService(execs);
for (int i = 0; i < execs.size(); i++) {
listBox.addItem(execs.get(i));
if (execService.getService().getName().equals(execs.get(i).getService().getName()) && !execService.getType().equals(execs.get(i).getType())) {
// preselect different type of exec service from same service
listBox.setSelected(execs.get(i), true);
}
}
addButton.setEnabled(true);
} else {
listBox.addItem("No exec service available");
}
}
@Override
public void onLoadingStart() {
listBox.clear();
listBox.addItem("Loading...");
addButton.setEnabled(false);
}
@Override
public void onError(PerunError error) {
listBox.addItem("Error while loading");
addButton.setEnabled(false);
}
};
// callback for all services
ListExecServices callback = new ListExecServices(0, localEvents);
callback.retrieveData();
// layout
layout.setHTML(0, 0, "ExecService:");
layout.setHTML(1, 0, "Depend On:");
layout.setHTML(0, 1, execService.getService().getName() + " " + execService.getType());
layout.setWidget(1, 1, listBox);
final JsonCallbackEvents closeTabEvents = JsonCallbackEvents.closeTabDisableButtonEvents(addButton, tab);
addButton.addClickHandler(new ClickHandler() {
public void onClick(ClickEvent event) {
CreateDependency request = new CreateDependency(closeTabEvents);
request.createDependancy(execServiceId, listBox.getSelectedObject().getId());
}
});
final CustomButton cancelButton = TabMenu.getPredefinedButton(ButtonType.CANCEL, "");
cancelButton.addClickHandler(new ClickHandler() {
@Override
public void onClick(ClickEvent clickEvent) {
session.getTabManager().closeTab(tab, false);
}
});
for (int i = 0; i < layout.getRowCount(); i++) {
cellFormatter.addStyleName(i, 0, "itemName");
}
menu.addWidget(addButton);
menu.addWidget(cancelButton);
vp.add(layout);
vp.add(menu);
vp.setCellHorizontalAlignment(menu, HasHorizontalAlignment.ALIGN_RIGHT);
this.contentWidget.setWidget(vp);
return getWidget();
}
use of cz.metacentrum.perun.webgui.model.ExecService in project perun by CESNET.
the class EditExecServiceTabItem method draw.
public Widget draw() {
titleWidget = new Label("Edit ExecService");
VerticalPanel vp = new VerticalPanel();
final CheckBox enabled = new CheckBox();
enabled.setText("Enabled / Disabled");
enabled.setValue(execService.isEnabled());
final ExtendedTextBox delay = new ExtendedTextBox();
delay.getTextBox().setText("" + execService.getDefaultDelay());
final ExtendedTextBox.TextBoxValidator delayValidator = new ExtendedTextBox.TextBoxValidator() {
@Override
public boolean validateTextBox() {
if (!JsonUtils.checkParseInt(delay.getTextBox().getText().trim())) {
delay.setError("Delay must be a number (time in minutes) !");
return false;
} else {
delay.setOk();
return true;
}
}
};
delay.setValidator(delayValidator);
final ExtendedTextBox scriptPath = new ExtendedTextBox();
scriptPath.getTextBox().setValue(execService.getScriptPath());
final ExtendedTextBox.TextBoxValidator scriptValidator = new ExtendedTextBox.TextBoxValidator() {
@Override
public boolean validateTextBox() {
if (scriptPath.getTextBox().getText().trim().isEmpty()) {
scriptPath.setError("Script path can't be empty !");
return false;
} else {
scriptPath.setOk();
return true;
}
}
};
scriptPath.setValidator(scriptValidator);
// prepares layout
FlexTable layout = new FlexTable();
layout.setStyleName("inputFormFlexTable");
FlexCellFormatter cellFormatter = layout.getFlexCellFormatter();
// close tab events
final TabItem tab = this;
TabMenu menu = new TabMenu();
// send button
final CustomButton saveButton = TabMenu.getPredefinedButton(ButtonType.SAVE, "Save changes of ExecService");
saveButton.addClickHandler(new ClickHandler() {
public void onClick(ClickEvent event) {
if (!scriptValidator.validateTextBox() && !delayValidator.validateTextBox())
return;
ExecService es = JsonUtils.clone(execService).cast();
es.setEnabled(enabled.getValue());
es.setDefaultDelay(Integer.parseInt(delay.getTextBox().getValue().trim()));
es.setScriptPath(scriptPath.getTextBox().getValue().trim());
UpdateExecService request = new UpdateExecService(JsonCallbackEvents.closeTabDisableButtonEvents(saveButton, tab, events));
request.updateExecService(es);
}
});
// cancel button
final CustomButton cancelButton = TabMenu.getPredefinedButton(ButtonType.CANCEL, "");
cancelButton.addClickHandler(new ClickHandler() {
@Override
public void onClick(ClickEvent clickEvent) {
session.getTabManager().closeTab(tab, false);
}
});
// Add some standard form options
layout.setHTML(0, 0, "Enabled:");
layout.setWidget(0, 1, enabled);
layout.setHTML(1, 0, "Script path:");
layout.setWidget(1, 1, scriptPath);
layout.setHTML(2, 0, "Delay:");
layout.setWidget(2, 1, delay);
for (int i = 0; i < layout.getRowCount(); i++) {
cellFormatter.addStyleName(i, 0, "itemName");
}
menu.addWidget(saveButton);
menu.addWidget(cancelButton);
vp.add(layout);
vp.add(menu);
vp.setCellHorizontalAlignment(menu, HasHorizontalAlignment.ALIGN_RIGHT);
this.contentWidget.setWidget(vp);
return getWidget();
}
use of cz.metacentrum.perun.webgui.model.ExecService in project perun by CESNET.
the class ServiceExecServicesTabItem method draw.
public Widget draw() {
this.titleWidget.setText(Utils.getStrippedStringWithEllipsis(service.getName()) + ": exec services");
final VerticalPanel vp = new VerticalPanel();
vp.setSize("100%", "100%");
TabMenu menu = new TabMenu();
vp.add(menu);
vp.setCellHeight(menu, "30px");
menu.addWidget(UiElements.getRefreshButton(this));
final ListExecServices callback = new ListExecServices(serviceId);
CellTable<ExecService> table = callback.getTable(new FieldUpdater<ExecService, String>() {
public void update(int index, ExecService object, String value) {
// manage details of exec services (dependency, status, update values?)
session.getTabManager().addTab(new ViewExecServiceTabItem(object));
}
});
// refresh event after deletion
final JsonCallbackEvents events = JsonCallbackEvents.refreshTableEvents(callback);
menu.addWidget(TabMenu.getPredefinedButton(ButtonType.CREATE, true, ButtonTranslation.INSTANCE.createExecService(), new ClickHandler() {
@Override
public void onClick(ClickEvent clickEvent) {
session.getTabManager().addTabToCurrentTab(new AddExecServiceTabItem(service));
}
}));
final CustomButton deleteButton = TabMenu.getPredefinedButton(ButtonType.REMOVE, ButtonTranslation.INSTANCE.deleteSelectedExecServices());
menu.addWidget(deleteButton);
deleteButton.addClickHandler(new ClickHandler() {
public void onClick(ClickEvent event) {
final ArrayList<ExecService> execToRemove = callback.getTableSelectedList();
UiElements.showDeleteConfirm(execToRemove, new ClickHandler() {
@Override
public void onClick(ClickEvent clickEvent) {
// TODO - SHOULD HAVE ONLY ONE CALLBACK TO CORE
for (int i = 0; i < execToRemove.size(); i++) {
if (i == execToRemove.size() - 1) {
DeleteExecService request = new DeleteExecService(JsonCallbackEvents.disableButtonEvents(deleteButton, events));
request.deleteExecService(execToRemove.get(i).getId());
} else {
DeleteExecService request = new DeleteExecService(JsonCallbackEvents.disableButtonEvents(deleteButton));
request.deleteExecService(execToRemove.get(i).getId());
}
}
}
});
}
});
table.addStyleName("perun-table");
ScrollPanel sp = new ScrollPanel(table);
sp.addStyleName("perun-tableScrollPanel");
session.getUiElements().resizePerunTable(sp, 350, this);
final CustomButton enable = TabMenu.getPredefinedButton(ButtonType.ENABLE, "Enable selected exec service(s)");
final CustomButton disable = TabMenu.getPredefinedButton(ButtonType.DISABLE, "Disable selected exec service(s)");
menu.addWidget(enable);
menu.addWidget(disable);
enable.addClickHandler(new ClickHandler() {
@Override
public void onClick(ClickEvent event) {
ArrayList<ExecService> list = callback.getTableSelectedList();
for (int i = 0; i < list.size(); i++) {
ExecService e = list.get(i);
if (i < list.size() - 1) {
// any call
if (!e.isEnabled()) {
UpdateExecService request = new UpdateExecService(JsonCallbackEvents.disableButtonEvents(enable));
e.setEnabled(true);
request.updateExecService(e);
}
} else {
// last call
if (!e.isEnabled()) {
UpdateExecService request = new UpdateExecService(JsonCallbackEvents.disableButtonEvents(enable, events));
e.setEnabled(true);
request.updateExecService(e);
}
}
}
}
});
disable.addClickHandler(new ClickHandler() {
@Override
public void onClick(ClickEvent event) {
ArrayList<ExecService> list = callback.getTableSelectedList();
for (int i = 0; i < list.size(); i++) {
ExecService e = list.get(i);
if (i < list.size() - 1) {
// any call
if (e.isEnabled()) {
UpdateExecService request = new UpdateExecService(JsonCallbackEvents.disableButtonEvents(disable));
e.setEnabled(false);
request.updateExecService(e);
}
} else {
// last call
if (e.isEnabled()) {
UpdateExecService request = new UpdateExecService(JsonCallbackEvents.disableButtonEvents(disable, events));
e.setEnabled(false);
request.updateExecService(e);
}
}
}
}
});
deleteButton.setEnabled(false);
enable.setEnabled(false);
disable.setEnabled(false);
JsonUtils.addTableManagedButton(callback, table, deleteButton);
JsonUtils.addTableManagedButton(callback, table, enable);
JsonUtils.addTableManagedButton(callback, table, disable);
vp.add(sp);
vp.setCellHeight(sp, "100%");
// add tabs to the main panel
this.contentWidget.setWidget(vp);
return getWidget();
}
use of cz.metacentrum.perun.webgui.model.ExecService in project perun by CESNET.
the class ViewExecServiceTabItem method getDependencyContent.
public VerticalPanel getDependencyContent() {
VerticalPanel vp = new VerticalPanel();
vp.setSize("100%", "100%");
// MAIN MENU
TabMenu tabMenu = new TabMenu();
tabMenu.addWidget(UiElements.getRefreshButton(this));
// callback
final ListExecServicesThisExecServiceDependsOn callback = new ListExecServicesThisExecServiceDependsOn(execServiceId);
// refresh event
final JsonCallbackEvents events = JsonCallbackEvents.refreshTableEvents(callback);
// add button
tabMenu.addWidget(TabMenu.getPredefinedButton(ButtonType.ADD, ButtonTranslation.INSTANCE.addDependantExecService(), new ClickHandler() {
@Override
public void onClick(ClickEvent clickEvent) {
session.getTabManager().addTabToCurrentTab(new AddDependencyTabItem(execService));
}
}));
final CustomButton removeButton = TabMenu.getPredefinedButton(ButtonType.REMOVE, ButtonTranslation.INSTANCE.removeSelectedDependantExecServices());
tabMenu.addWidget(removeButton);
removeButton.addClickHandler(new ClickHandler() {
@Override
public void onClick(ClickEvent event) {
final ArrayList<ExecService> dependencyForDeletion = callback.getTableSelectedList();
UiElements.showDeleteConfirm(dependencyForDeletion, new ClickHandler() {
@Override
public void onClick(ClickEvent clickEvent) {
// TODO - SHOULD HAVE ONLY ONE CALLBACK TO CORE
for (int i = 0; i < dependencyForDeletion.size(); i++) {
if (i == dependencyForDeletion.size() - 1) {
RemoveDependency request = new RemoveDependency(JsonCallbackEvents.disableButtonEvents(removeButton, events));
request.removeDependency(execServiceId, dependencyForDeletion.get(i).getId());
} else {
RemoveDependency request = new RemoveDependency(JsonCallbackEvents.disableButtonEvents(removeButton));
request.removeDependency(execServiceId, dependencyForDeletion.get(i).getId());
}
}
}
});
}
});
vp.add(tabMenu);
vp.setCellHeight(tabMenu, "30px");
// get table
CellTable<ExecService> table = callback.getTable();
// create scroll panel for table
table.addStyleName("perun-table");
ScrollPanel sp = new ScrollPanel(table);
sp.addStyleName("perun-tableScrollPanel");
sp.setWidth("100%");
removeButton.setEnabled(false);
JsonUtils.addTableManagedButton(callback, table, removeButton);
vp.add(sp);
vp.setCellHeight(sp, "100%");
session.getUiElements().resizePerunTable(sp, 250, this);
return vp;
}
use of cz.metacentrum.perun.webgui.model.ExecService in project perun by CESNET.
the class ListDenialsForFacility method onFinished.
/**
* Called when loading successfully finishes.
*/
public void onFinished(JavaScriptObject jso) {
for (ExecService e : JsonUtils.<ExecService>jsoAsList(jso)) {
e.setLocalEnabled("Disabled");
addToTable(e);
}
sortTable();
loaderImage.loadingFinished();
session.getUiElements().setLogText("ExecServices loaded: " + list.size());
events.onFinished(jso);
}
Aggregations