@OMethod( icon = FAIconType.play, bootstrap=BootstrapType.SUCCESS,titleKey="task.command.start", filters={@OFilter(fClass = PlaceFilter.class, fData = "STRUCTURE_TABLE"), @OFilter(fClass = WidgetTypeFilter.class, fData = "parameters"), }, behaviors={} ) public void startNewSession( IMethodContext data){ startNewSession(); } ///////////////////////////////////////////////////////////////////////////////////
protected List<IMethodFilter> makeFilters(OFilter[] filters){ ArrayList<IMethodFilter> result = new ArrayList<IMethodFilter>(filters.length); for (OFilter iMethodFilter : filters) { IMethodFilter newFilter; try { newFilter = iMethodFilter.fClass().newInstance(); newFilter.setFilterData(iMethodFilter.fData()); result.add(newFilter); } catch (InstantiationException | IllegalAccessException e) { LOG.error("Can't make a filter", e); } } if (!getSelector().isEmpty()){ result.add(new SelectorFilter().setFilterData(getSelector())); } if (!getPermission().isEmpty()){ result.add(new PermissionFilter().setFilterData(getPermission())); } return result; }
/** * Command to save silently current dashboard */ @OMethod(order=3,filters={ @OFilter(fClass = PlaceFilter.class, fData = "DASHBOARD_SETTINGS"), }) public class SilentSaveDashboardCommand extends AjaxCommand<ODocument> { private static final long serialVersionUID = 1L; public SilentSaveDashboardCommand(String id, IModel<ODocument> dashboardDocumentModel) { super(id, "command.save", dashboardDocumentModel); setIcon(FAIconType.save); setChangingDisplayMode(true); } @Override public void onClick(Optional<AjaxRequestTarget> targetOptional) { IDashboardContainer container = findParent(IDashboardContainer.class); DashboardPanel<?> dashboard = container.getCurrentDashboard().getSelfComponent(); dashboard.storeDashboard(); dashboard.getModeModel().setObject(DisplayMode.VIEW); targetOptional.ifPresent(target -> { target.add(container.getSelf().get("pageHeader")); target.add(dashboard); }); } }
@OFilter(fClass = PlaceFilter.class, fData = "DASHBOARD_SETTINGS"), }) public class UnhideWidgetCommand<T> extends AbstractModalWindowCommand<ODocument> {
@OFilter(fClass = PlaceFilter.class, fData = "DASHBOARD_SETTINGS"), }) public class AddWidgetCommand<T> extends AbstractModalWindowCommand<ODocument> {
@OMethod( order = 20,bootstrap=BootstrapType.WARNING,icon = FAIconType.pause, filters={ @OFilter(fClass = PlaceFilter.class, fData = "STRUCTURE_TABLE"), @OFilter(fClass = WidgetTypeFilter.class, fData = "parameters"), }, behaviors={OIntegrationConfigStopBehavior.class} ) public void suspend(IMethodContext data){ final CamelContext context = getOrMakeContext(data.getCurrentWidget()); new Thread(new Runnable() { @Override public void run() { try { ServiceStatus status = context.getStatus(); if (status.isSuspended()){ context.start(); }else if(status.isStarted()){ context.suspend(); } } catch (Exception e) { LOG.error("Cannot start or suspend Camel Context",e); } } }).start(); waitingRefresh(context); } /////////////////////////////////////////////////////////////////////////////////////////////////////
@OMethod( order = 30,bootstrap=BootstrapType.DANGER,icon = FAIconType.stop, filters={@OFilter(fClass = PlaceFilter.class, fData = "STRUCTURE_TABLE"), @OFilter(fClass = WidgetTypeFilter.class, fData = "parameters"), }, behaviors={OIntegrationConfigStopBehavior.class} ) public void stop(IMethodContext data){ CamelContext context = getOrMakeContextByRid(getDocument().getIdentity().toString(),data.getCurrentWidget()); try { context.stop(); } catch (Exception e) { LOG.error("Cannot stop Camel Context",e); } waitingRefresh(context); } /////////////////////////////////////////////////////////////////////////////////////////////////////
@OMethod( icon = FAIconType.stop, bootstrap=BootstrapType.DANGER, filters={@OFilter(fClass = PlaceFilter.class, fData = "STRUCTURE_TABLE"), @OFilter(fClass = WidgetTypeFilter.class, fData = "parameters"), }, behaviors={OTaskSessionInterruptBehavior.class} ) public void interrupt( IMethodContext data){ try { interrupt(); } catch (Exception e) { AbstractWidget<?> widget = data.getCurrentWidget(); if(widget!=null) { widget.error(widget.getLocalizer().getString("errors.session.cantinterupt", widget, Model.of(e.getMessage()))); } LOG.error("Can't interrupt the session", e); } } ///////////////////////////////////////////////////////////////////////
@OFilter(fClass = DisallowFilter.class, fData = ""), // not need to show this method outside development
@OFilter(fClass = DisallowFilter.class, fData = ""), // not need to show this method outside development
@OMethod( order=10,bootstrap=BootstrapType.SUCCESS,icon = FAIconType.play, permission="EXECUTE", filters={ @OFilter(fClass = PlaceFilter.class, fData = "STRUCTURE_TABLE"), @OFilter(fClass = WidgetTypeFilter.class, fData = "parameters"), // @OFilter(fClass = PlaceFilter.class, fData = "STRUCTURE_TABLE|DATA_TABLE"), } ) public void run(IMethodContext data){ OTaskSessionRuntime newSession = startNewSession(); AbstractWidgetDisplayModeAwarePage<ODocument> page = new ODocumentPage(new ODocumentModel(newSession.getOTaskSessionPersisted().getDocument())).setModeObject(DisplayMode.VIEW); data.getCurrentWidget().setResponsePage(page); }