示例#1
0
  /**
   * Claim-tasks action.
   *
   * @param redirector unused.
   * @param resolver unused.
   * @param objectModel Cocoon's object model.
   * @param source unused.
   * @param parameters unused.
   * @return null.
   * @throws java.lang.Exception passed through.
   */
  @Override
  public Map act(
      Redirector redirector,
      SourceResolver resolver,
      Map objectModel,
      String source,
      Parameters parameters)
      throws Exception {
    Request request = ObjectModelHelper.getRequest(objectModel);
    Context context = ContextUtil.obtainContext(objectModel);

    // Or the user selected a checkbox full of workflow IDs
    String[] workflowIDs = request.getParameterValues("workflowID");
    if (workflowIDs != null) {
      for (String workflowID : workflowIDs) {
        BasicWorkflowItem workflowItem =
            basicWorkflowItemService.find(context, Integer.valueOf(workflowID));

        int state = workflowItem.getState();
        // Only unclaim tasks that are already claimed.
        if (state == BasicWorkflowServiceImpl.WFSTATE_STEP1POOL
            || state == BasicWorkflowServiceImpl.WFSTATE_STEP2POOL
            || state == BasicWorkflowServiceImpl.WFSTATE_STEP3POOL) {
          basicWorkflowService.claim(context, workflowItem, context.getCurrentUser());
        }
      }
    }

    return null;
  }
示例#2
0
 private Map<String, String[]> createParametersMap(Request request) {
   Map<String, String[]> result = new HashMap<String, String[]>();
   Enumeration parameterNames = request.getParameterNames();
   while (parameterNames.hasMoreElements()) {
     String paramName = (String) parameterNames.nextElement();
     result.put(paramName, request.getParameterValues(paramName));
   }
   return result;
 }
示例#3
0
文件: Tree.java 项目: tpso-src/cocoon
  public void readFromRequest(FormContext formContext) {
    // TODO: crawl open nodes, calling their widget's readFromRequest

    Request req = formContext.getRequest();
    String paramName = getRequestParameterName();

    // ---------------------------------------------------------------------
    // Handle node selection using checkboxes named <id>$select
    // ---------------------------------------------------------------------
    String[] selectValues = req.getParameterValues(paramName + ":select");
    if (selectValues != null) {
      // Create the set of paths given by the request
      Set newSelection = new HashSet();
      for (int i = 0; i < selectValues.length; i++) {
        newSelection.add(TreePath.valueOf(selectValues[i]));
      }

      // Check if all visible selections are in the new selection
      TreePath[] currentSelection =
          (TreePath[]) this.selectedPaths.toArray(new TreePath[this.selectedPaths.size()]);
      for (int i = 0; i < currentSelection.length; i++) {
        TreePath p = currentSelection[i];
        if (!newSelection.contains(p) && isVisible(p)) {
          removeSelectionPath(p);
        }
      }

      // Now add the currently selected items (may be selected already)
      Iterator iter = newSelection.iterator();
      while (iter.hasNext()) {
        addSelectionPath((TreePath) iter.next());
      }
    }

    // ---------------------------------------------------------------------
    // Handle tree actions:
    // - action is in <name>$action
    // - path is in <name>$path
    // ---------------------------------------------------------------------
    String action = req.getParameter(paramName + ":action");

    if (action == null || action.length() == 0) {
      // Nothing more to do here
      return;
    }

    getForm().setSubmitWidget(this);
    String pathValue = req.getParameter(paramName + ":path");

    if (pathValue == null || pathValue.length() == 0) {
      // this.treeDef.getLogger().warn("No tree path given");
      return;
    }

    // Parse the path
    TreePath path = TreePath.valueOf(pathValue);

    if ("expand".equals(action)) {
      this.expandPath(path);
    } else if ("collapse".equals(action)) {
      this.collapsePath(path);
    } else if ("toggle-collapse".equals(action)) {
      if (this.isExpanded(path)) {
        this.collapsePath(path);
      } else {
        this.expandPath(path);
      }
    } else if ("select".equals(action)) {
      this.addSelectionPath(path);
    } else if ("unselect".equals(action)) {
      this.removeSelectionPath(path);
    } else if ("toggle-select".equals(action)) {
      if (this.isPathSelected(path)) {
        this.removeSelectionPath(path);
      } else {
        this.addSelectionPath(path);
      }
    } else {
      // Unknown action
      // this.treeDef.getLogger().warn("Unknown action " + action);
    }
  }
示例#4
0
 public String[] getParameterFacetQueries() {
   Request request = ObjectModelHelper.getRequest(objectModel);
   return request.getParameterValues("fq") != null
       ? request.getParameterValues("fq")
       : new String[0];
 }
示例#5
0
  @Override
  public void addBody(Body body)
      throws SAXException, WingException, UIException, SQLException, IOException,
          AuthorizeException {

    Request request = ObjectModelHelper.getRequest(objectModel);

    DSpaceObject dso = HandleUtil.obtainHandle(objectModel);

    // Set up the major variables
    // Collection collection = (Collection) dso;

    // Build the collection viewer division.

    // Make sure we get our results
    queryResults = getQueryResponse(dso);
    if (this.queryResults != null) {

      Map<String, List<DiscoverResult.FacetResult>> facetFields =
          this.queryResults.getFacetResults();
      if (facetFields == null) {
        facetFields = new LinkedHashMap<String, List<DiscoverResult.FacetResult>>();
      }

      //            facetFields.addAll(this.queryResults.getFacetDates());

      if (facetFields.size() > 0) {
        String facetField =
            String.valueOf(facetFields.keySet().toArray(new String[facetFields.size()])[0]);
        java.util.List<DiscoverResult.FacetResult> values = facetFields.get(facetField);

        if (values != null && 0 < values.size()) {

          Division results = body.addDivision("browse-by-" + facetField + "-results", "primary");

          results.setHead(
              message(
                  "xmlui.ArtifactBrowser.AbstractSearch.type_"
                      + request.getParameter(FACET_FIELD)
                      + "_browse"));

          // Find our faceting offset
          int offSet = queryArgs.getFacetOffset();
          if (offSet == -1) {
            offSet = 0;
          }

          // Only show the nextpageurl if we have at least one result following our current results
          String nextPageUrl = null;
          if (values.size() == (DEFAULT_PAGE_SIZE + 1)) {
            nextPageUrl = getNextPageURL(request);
          }

          results.setSimplePagination(
              (int) queryResults.getDspaceObjects().size(),
              offSet + 1,
              (offSet + (values.size() - 1)),
              getPreviousPageURL(request),
              nextPageUrl);

          Table singleTable =
              results.addTable(
                  "browse-by-" + facetField + "-results",
                  (int) (queryResults.getDspaceObjects().size() + 1),
                  1);

          List<String> filterQueries = new ArrayList<String>();
          if (request.getParameterValues("fq") != null) {
            filterQueries = Arrays.asList(request.getParameterValues("fq"));
          }
          for (int i = 0; i < values.size(); i++) {
            DiscoverResult.FacetResult value = values.get(i);

            String displayedValue = value.getDisplayedValue();
            String filterQuery = value.getAsFilterQuery();

            //                        if(field.getGap() != null){
            //                            //We have a date get the year so we can display it
            //                            DateFormat simpleDateformat = new
            // SimpleDateFormat("yyyy");
            //                            displayedValue =
            // simpleDateformat.format(SolrServiceImpl.toDate(displayedValue));
            //                            filterQuery =
            // ClientUtils.escapeQueryChars(value.getFacetField().getName()) + ":" + displayedValue
            // + "*";
            //                        }

            Cell cell = singleTable.addRow().addCell();

            // No use in selecting the same filter twice
            if (filterQueries.contains(filterQuery)) {
              cell.addContent(displayedValue + " (" + value.getCount() + ")");
            } else {
              cell.addXref(
                  contextPath
                      + (dso == null ? "" : "/handle/" + dso.getHandle())
                      + "/discover?"
                      + "&fq="
                      + URLEncoder.encode(filterQuery, "UTF-8")
                      + (request.getQueryString() != null ? "&" + request.getQueryString() : ""),
                  displayedValue + " (" + value.getCount() + ")");
            }
          }
        }
      }
    }

    // DSpaceObject dso = HandleUtil.obtainHandle(objectModel);

    /*
    if (dso != null)
    {
        if (dso instanceof Collection)
        {
            browseContext.addItem().addXref(contextPath + "/discovery/?q=search.resourcetype%3A2+AND+location%3Al" + dso.getID(), T_head_this_collection );
        }
        if (dso instanceof Community)
        {
            browseContext.addItem().addXref(contextPath + "/discovery/?q=search.resourcetype%3A2+AND+location%3Am" + dso.getID(), T_head_this_community );
        }
    }

    browseGlobal.addItem().addXref(contextPath + "/discovery/?q=search.resourcetype%3A2", T_head_all_of_dspace );
    */
  }