View Javadoc
1   /*
2    * Licensed to the Apache Software Foundation (ASF) under one
3    * or more contributor license agreements.  See the NOTICE file
4    * distributed with this work for additional information
5    * regarding copyright ownership.  The ASF licenses this file
6    * to you under the Apache License, Version 2.0 (the
7    * "License"); you may not use this file except in compliance
8    * with the License.  You may obtain a copy of the License at
9    *
10   *   http://www.apache.org/licenses/LICENSE-2.0
11   *
12   * Unless required by applicable law or agreed to in writing,
13   * software distributed under the License is distributed on an
14   * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
15   * KIND, either express or implied.  See the License for the
16   * specific language governing permissions and limitations
17   * under the License.
18   */
19  package org.apache.syncope.client.console.tasks;
20  
21  import org.apache.syncope.client.console.commons.IdRepoConstants;
22  import org.apache.syncope.client.console.panels.MultilevelPanel;
23  import org.apache.syncope.client.console.rest.TaskRestClient;
24  import org.apache.syncope.client.console.wicket.markup.html.bootstrap.dialog.BaseModal;
25  import org.apache.syncope.client.console.wicket.markup.html.form.ActionLink;
26  import org.apache.syncope.client.console.wicket.markup.html.form.ActionsPanel;
27  import org.apache.syncope.common.lib.to.PullTaskTO;
28  import org.apache.syncope.common.lib.types.IdRepoEntitlement;
29  import org.apache.syncope.common.lib.types.TaskType;
30  import org.apache.wicket.PageReference;
31  import org.apache.wicket.ajax.AjaxRequestTarget;
32  import org.apache.wicket.model.IModel;
33  
34  public abstract class PullTaskDirectoryPanel extends ProvisioningTaskDirectoryPanel<PullTaskTO> {
35  
36      private static final long serialVersionUID = 4984337552918213290L;
37  
38      protected PullTaskDirectoryPanel(
39              final TaskRestClient restClient,
40              final BaseModal<?> baseModal,
41              final MultilevelPanel multiLevelPanelRef,
42              final String resource,
43              final PageReference pageRef) {
44  
45          super(restClient, baseModal, multiLevelPanelRef, TaskType.PULL, new PullTaskTO(), resource, pageRef);
46      }
47  
48      @Override
49      protected String paginatorRowsKey() {
50          return IdRepoConstants.PREF_PUSH_TASKS_PAGINATOR_ROWS;
51      }
52  
53      @Override
54      protected ProvisioningTasksProvider<PullTaskTO> dataProvider() {
55          return new ProvisioningTasksProvider<>(TaskType.PULL, rows);
56      }
57  
58      @Override
59      protected void addFurtherActions(final ActionsPanel<PullTaskTO> panel, final IModel<PullTaskTO> model) {
60          panel.add(new ActionLink<>() {
61  
62              private static final long serialVersionUID = -3722207913631435501L;
63  
64              @Override
65              public void onClick(final AjaxRequestTarget target, final PullTaskTO ignore) {
66                  PullTaskDirectoryPanel.this.getTogglePanel().close(target);
67                  templates.setTargetObject(model.getObject());
68                  templates.toggle(target, true);
69              }
70          }, ActionLink.ActionType.TEMPLATE, IdRepoEntitlement.TASK_UPDATE).disableIndicator();
71      }
72  }