/* * Copyright 2011 JBoss Inc * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.jbpm.formbuilder.client; import java.util.List; import java.util.Map; import org.jbpm.formapi.client.FormBuilderException; import org.jbpm.formapi.client.menu.FBMenuItem; import org.jbpm.formapi.shared.api.FormItemRepresentation; import org.jbpm.formapi.shared.api.FormRepresentation; import org.jbpm.formapi.shared.api.RepresentationFactory; import org.jbpm.formbuilder.shared.task.TaskRef; /** * Client's interface with the REST API server. */ public interface FormBuilderService { /** * Gets a map of groups indexed by group name. Each group contains a list of menu items available in each group. * @return a map of groups with its lists of menu items. * @throws FormBuilderException in case of error. */ void getMenuItems() throws FormBuilderException; /** * Gets a list of menu options, generally for a menu bar. Each option has a name, and * maybe a subMenu consisting of a list of menu options, or maybe a command, or maybe both. * @return a list of menu options. * @throws FormBuilderException in case of error. */ void getMenuOptions() throws FormBuilderException; /** * Saves a form on the server * @param form The form to be saved * @throws FormBuilderException in case of error */ void saveForm(FormRepresentation form) throws FormBuilderException; /** * Saves a UI component on the server * @param formItem the UI component to be saved * @param formItemName the UI component name * @throws FormBuilderException in case of error */ void saveFormItem(final FormItemRepresentation formItem, String formItemName) throws FormBuilderException; /** * Deletes a form from the server * @param form The form to be deleted * @throws FormBuilderException in case of error */ void deleteForm(FormRepresentation form) throws FormBuilderException; void deleteFile(String url) throws FormBuilderException; /** * Deletes a UI component from the server * @param formItemName The UI component name * @param formItem the UI component to be deleted * @throws FormBuilderException in case of error */ void deleteFormItem(String formItemName, final FormItemRepresentation formItem) throws FormBuilderException; /** * Translates a form. An event exposes where to retrieve the form from. * * @param form Form to be translated * @param language Language to translate the form * @throws FormBuilderException in case of error */ void generateForm(FormRepresentation form, String language, Map<String, Object> inputs) throws FormBuilderException; /** * Saves a new (custom) menu item on the server * @param groupName Group name of the new menu item * @param item The new menu item to be saved * @throws FormBuilderException in case of error */ void saveMenuItem(String groupName, FBMenuItem item) throws FormBuilderException; /** * Deletes a custom menu item from the server * @param groupName Group name of the custom menu item to be deleted * @param item The custom menu item to be deleted * @throws FormBuilderException in case of error */ void deleteMenuItem(String groupName, FBMenuItem item) throws FormBuilderException; /** * Returns the IoAssociations as matching on a simple string filter * @param filter a filter for a google-like search textfield * @return all best fit task definition references to the filter * @throws FormBuilderException in case of error */ void getExistingIoAssociations(String filter) throws FormBuilderException; /** * Fires a TaskSelectedEvent in case you can find the proper task in the server * @param pkgName the name of the package * @param processName the name of the process * @param taskName the name of the task * @throws FormBuilderException in case of error */ void selectIoAssociation(String pkgName, String processName, String taskName) throws FormBuilderException; /** * Returns existing validations from the server * @return all existing validation types available on server side * @throws FormBuilderException in case of error */ void getExistingValidations() throws FormBuilderException; /** * Returns a single form * @param formName the name of the form to be returned * @return the requested form * @throws FormBuilderException in case of error. */ void getForm(String formName) throws FormBuilderException; /** * Returns all forms * @return all existing forms * @throws FormBuilderException in case of error. */ void getForms() throws FormBuilderException; /** * Populates the {@link RepresentationFactory} with the form items and representations * that belong to them. * @param callback callback to tell the client what to do once it finishes * @throws FormBuilderException in case of error. */ void populateRepresentationFactory() throws FormBuilderException; /** * Loads a file from the server that contains a given language's form template * @param form the form representation to create a template from * @param language the result template expected language * @throws FormBuilderException in case of error. */ void loadFormTemplate(FormRepresentation form, String language) throws FormBuilderException; interface RolesResponseHandler { void onResponse(List<String> roles); } void getCurrentRoles(RolesResponseHandler handler) throws FormBuilderException; /** * Returns the form representation that basically describes a task * @param task a task to be described * @return a form representation for that task */ FormRepresentation toBasicForm(TaskRef task); /** * @return URL for uploading files to guvnor */ String getUploadFileURL(); /** * @return URL for mocking uploading files for form instances */ String getUploadActionURL(); void setPackageName(String packageName); void logout(); void getFiles(List<String> types, FilesLoadedHandler handler); }