Example usage for com.google.gwt.user.client Window confirm

List of usage examples for com.google.gwt.user.client Window confirm

Introduction

In this page you can find the example usage for com.google.gwt.user.client Window confirm.

Prototype

public static boolean confirm(String msg) 

Source Link

Usage

From source file:org.ebayopensource.turmeric.policy.adminui.client.presenter.policy.PolicyCreatePresenter.java

License:Open Source License

private void bindResourceSection() {

    this.view.addRsResourceLevelBoxChange(new ChangeHandler() {

        public void onChange(final ChangeEvent event) {
            display();/*  ww w.  ja va2  s .c  o m*/

        }

    });

    // edit an assignment
    this.view.addRsEditButtonClick(new ClickHandler() {

        public void onClick(final ClickEvent event) {
            if (view.getResourceContentView().getSelections().size() != 1) {
                return;
            }
            view.getResourceContentView().getResourceLevelLabel().setVisible(false);
            view.getResourceContentView().getResourceLevelBox().setVisible(false);

            view.getResourceContentView().getResourceTypeLabel().setVisible(true);
            view.getResourceContentView().getResourceTypeBox().setVisible(true);

            view.getResourceContentView().getResourceNameLabel().setVisible(true);
            view.getResourceContentView().getResourceNameBox().setVisible(true);

            view.getResourceContentView().getSelectBoxesWidget().setVisible(true);

            // edit the existing assignment - set the available
            // SubjectTypes as only the one
            // in the assignment, and set the availables vs selected
            // Subjects and SubjectGroups
            // based on the assignment
            editResourceAssignment = view.getResourceContentView().getSelections().get(0);
            // remove the assignment from the list of assignments
            // while it is being edited
            resourceAssignments.remove(editResourceAssignment);
            // update the display
            view.getResourceContentView().setAssignments(resourceAssignments);
            // set the available resource types to just the type
            // being edited
            List<String> typeList = new ArrayList<String>();
            typeList.add(editResourceAssignment.getResourceType());
            view.getResourceContentView().setResourceTypes(typeList);

            // get all the resources of this type
            ResourceKey rsKey = new ResourceKey();
            rsKey.setType(editResourceAssignment.getResourceType());

            List<ResourceKey> rsKeys = new ArrayList<ResourceKey>();
            rsKeys.add(rsKey);
            service.getResources(rsKeys, new AsyncCallback<GetResourcesResponse>() {

                public void onFailure(final Throwable arg) {
                    if (arg.getLocalizedMessage().contains("500")) {
                        view.error(PolicyAdminUIUtil.messages
                                .serverError(PolicyAdminUIUtil.policyAdminConstants.genericErrorMessage()));
                    } else {
                        view.error(PolicyAdminUIUtil.messages.serverError(arg.getLocalizedMessage()));
                    }
                }

                public void onSuccess(final GetResourcesResponse response) {
                    List<Resource> resources = new ArrayList<Resource>(response.getResources());
                    view.getResourceContentView().setResourceNames(getResourceNames(resources));

                    int index = getResourceIndex(resources, editResourceAssignment.getResourceName());
                    view.getResourceContentView().getResourceNameBox().setSelectedIndex(index);

                    view.getResourceContentView()
                            .setSelectedOperations(getOperationNames(editResourceAssignment.getOpList()));

                    List<Operation> operations = new ArrayList<Operation>(resources.get(index).getOpList());
                    operations.removeAll(editResourceAssignment.getOpList());
                    view.getResourceContentView().setAvailableOperations(getOperationNames(operations));
                }
            });
            view.getResourceContentView().show();

        }

    });

    view.addRsCancelResourceButtonClick(new ClickHandler() {
        public void onClick(final ClickEvent event) {
            if (editResourceAssignment != null) {
                resourceAssignments.add(editResourceAssignment);
                editResourceAssignment = null;
                view.getResourceContentView().setAssignments(resourceAssignments);
                view.getResourceContentView().hide();
                // // fix the resource types + name key
                // .setasiigmentUnique resource
                // AvailableSubjectTypes(subjectTypes);
                return;
            }

            view.getResourceContentView().clearAssignmentWidget();
            view.getResourceContentView().hide();
        }
    });

    // retrieve resource names based on selected type
    this.view.addRsResourceTypeBoxChange(new ChangeHandler() {

        public void onChange(final ChangeEvent event) {

            getRemainingResourceNames();
        }

    });

    // retrieve available operations based on selected name
    this.view.addRsResourceNameBoxClick(new ClickHandler() {

        public void onClick(final ClickEvent event) {
            getAvailableOperations();
        }

    });

    // assign a new rs to the policy
    this.view.addRsResourceButtonClick(new ClickHandler() {
        public void onClick(final ClickEvent event) {

            /*
             * Resources could be assigned at 3 levels GLOBAL: means
             * all resources and its operations apply RESOURCE: All
             * operations of the selected resource are included
             * OPERATION: The policy just apply to the specific
             * operation of the selected resources
             */
            if (resourceAssignments == null) {
                resourceAssignments = new ArrayList<Resource>();
            }
            final ResourceImpl assignment = new ResourceImpl();

            if (ResourceLevel.RESOURCE.name().equals(view.getResourceContentView().getResourceLevel())) {
                assignment.setResourceName(view.getResourceContentView().getResourceName());
                assignment.setResourceType(view.getResourceContentView().getResourceType());

                List<Operation> operations = new ArrayList<Operation>();
                for (String s : view.getResourceContentView().getAvailableOperations()) {
                    OperationImpl op = new OperationImpl();
                    op.setOperationName(s);
                    operations.add(op);
                }
                assignment.setOpList(operations);
                assignedUniqueResources.add(assignment.getResourceType() + assignment.getResourceName());
                resourceAssignments.add(assignment);

            } else if (ResourceLevel.GLOBAL.name().equals(view.getResourceContentView().getResourceLevel())) {
                getAllResources();
                resourceAssignments.clear();
                resourceAssignments.addAll(allResources);
                assignedUniqueResources.clear();
                for (Resource rs : allResources) {
                    assignedUniqueResources.add(rs.getResourceType() + rs.getResourceName());
                }

            } else {

                assignment.setResourceName(view.getResourceContentView().getResourceName());
                assignment.setResourceType(view.getResourceContentView().getResourceType());

                List<Operation> operations = new ArrayList<Operation>();
                for (String s : view.getResourceContentView().getSelectedOperations()) {
                    OperationImpl op = new OperationImpl();
                    op.setOperationName(s);
                    operations.add(op);
                }
                assignment.setOpList(operations);

                assignedUniqueResources.add(assignment.getResourceType() + assignment.getResourceName());

                resourceAssignments.add(assignment);
            }

            view.getResourceContentView().setAssignments(resourceAssignments);

            view.getResourceContentView().clearAssignmentWidget();
        }

    });

    // delete an assignment
    this.view.addRsDelButtonClick(new ClickHandler() {
        public void onClick(final ClickEvent event) {
            if (view.getResourceContentView().getSelections().size() == 0) {
                return;
            } else {
                if (Window.confirm(PolicyAdminUIUtil.policyAdminConstants.deleteSelected())) {
                    for (Resource selectedAssignment : view.getResourceContentView().getSelections()) {
                        resourceAssignments.remove(selectedAssignment);

                        assignedUniqueResources.remove(
                                selectedAssignment.getResourceType() + selectedAssignment.getResourceName());

                    }
                    view.getResourceContentView().getSelections().clear();
                    view.getResourceContentView().setAssignments(resourceAssignments);
                    view.getResourceContentView().getSelectionModel().clear();
                }
            }
        }
    });

}

From source file:org.ebayopensource.turmeric.policy.adminui.client.presenter.policy.PolicySummaryPresenter.java

License:Open Source License

/**
* Bind.// w  w w.ja  va  2s  .c om
*/
public void bind() {

    // The user wants to search by subject group type + name
    this.view.addSubjectCriteriaButtonClickHandler(new ClickHandler() {
        public void onClick(ClickEvent event) {
            view.setAvailableTypes(fetchSubjectTypes());
        }
    });

    // the user wants to search by policy type and name
    this.view.addPolicyCriteriaButtonClickHandler(new ClickHandler() {
        public void onClick(ClickEvent event) {
            view.setAvailableTypes(fetchPolicyTypes());
        }
    });

    // the user wants to search by resource type
    this.view.addResourceCriteriaButtonClickHandler(new ClickHandler() {
        public void onClick(ClickEvent event) {
            view.setAvailableTypes(fetchResourceTypes());
        }
    });

    // the user wants to search by resource type
    this.view.addAvailableTypesBoxChangeHandler(new ChangeHandler() {

        public void onChange(ChangeEvent event) {
            if (view.isResourceCriteriaEnabled()) {
                if (view.getSelectedType() != null && !"".equals(view.getSelectedResource())) {
                    fetchResourcesByType(view.getSelectedType());
                }
            }
            if (view.isPolicyCriteriaEnabled()) {
                if (view.getSelectedType() != null && "RL".equals(view.getSelectedType())) {
                    view.setRLEffectBoxVisible(true);
                    view.setRLEffectLabelVisible(true);

                } else {
                    view.setRLEffectBoxVisible(false);
                    view.setRLEffectLabelVisible(false);
                }
            }
        }
    });

    // the user wants to search by rs name
    this.view.addResourceNameBoxChangeHandler(new ChangeHandler() {

        public void onChange(ChangeEvent event) {
            if (view.getSelectedType() != null && !"".equals(view.getSelectedResource())) {

                getOperationNamesByRs(view.getSelectedResource());
                PolicySummaryPresenter.this.view.setOperationNames();
            }
        }
    });

    // the user wants to search by SubjectGroup type and name
    this.view.addSubjectGroupCriteriaButtonClickHandler(new ClickHandler() {
        public void onClick(ClickEvent event) {
            view.setAvailableTypes(fetchSubjectTypes());
        }
    });

    this.view.addSearchButtonClickHandler(new ClickHandler() {

        public void onClick(ClickEvent event) {
            if (PolicySummaryPresenter.this.view.isPolicyCriteriaEnabled()) {
                fetchPolicyTypes();
                fetchPoliciesByName(PolicySummaryPresenter.this.view.getSearchTerm(),
                        PolicySummaryPresenter.this.view.getSelectedType(),
                        PolicySummaryPresenter.this.view.getSelectedEffect());
            } else if (PolicySummaryPresenter.this.view.isResourceCriteriaEnabled()) {
                fetchPoliciesByResource(PolicySummaryPresenter.this.view.getSelectedType(),
                        PolicySummaryPresenter.this.view.getSelectedResource(),
                        PolicySummaryPresenter.this.view.getSelectedOperation());

            } else if (PolicySummaryPresenter.this.view.isSubjectCriteriaEnabled()) {
                fetchPoliciesBySubject(PolicySummaryPresenter.this.view.getSearchTerm(),
                        PolicySummaryPresenter.this.view.getSelectedType());

            } else if (PolicySummaryPresenter.this.view.isSubjectGroupCriteriaEnabled()) {
                fetchPoliciesBySubjectGroupName(PolicySummaryPresenter.this.view.getSearchTerm(),
                        PolicySummaryPresenter.this.view.getSelectedType());
            } else {
                PolicySummaryPresenter.this.view
                        .error(PolicyAdminUIUtil.policyAdminConstants.searchCriteriaInvalid());
            }

            // fetchPolicies(view.isSearchCriteriaEnabled(),
            // view.getSelectedType(), view.getSearchTerm());
            // setPolicies();
        }
    });

    this.view.addActionButtonAboveClickHandler(new ClickHandler() {

        /*
         * (non-Javadoc)
         * 
         * @see
         * com.google.gwt.event.dom.client.ClickHandler#onClick(com.google
         * .gwt.event.dom.client.ClickEvent)
         */
        public void onClick(ClickEvent event) {
            Map<GenericPolicy, UserAction> pending = view.getPendingActions();

            if (pending.isEmpty()) {
                return;
            }

            // Things that can be pending:
            // 1. editing/viewing a SINGLE policy
            // or
            // 2. deleting multiple policies
            // or
            // 3. enabling/disabling multiple policies
            // 4. export. must be in bulk
            if (!pending.isEmpty()) {
                UserAction action = null;
                // all action should be same
                for (Map.Entry<GenericPolicy, UserAction> entry : pending.entrySet()) {
                    action = entry.getValue();
                    break;
                }
                if (action == null) {
                    return;
                } else {
                    switch (action) {
                    case POLICY_VIEW: {
                        GWT.log("VIEW POLICY:");

                        for (Map.Entry<GenericPolicy, UserAction> entry : pending.entrySet()) {
                            HistoryToken token = makeToken(PolicyController.PRESENTER_ID,
                                    PolicyViewPresenter.PRESENTER_ID, null);
                            token.addValue(HistoryToken.SELECTED_POLICY_TOKEN_ID,
                                    String.valueOf(entry.getKey().getId()));
                            token.addValue(HistoryToken.SELECTED_POLICY_TOKEN_TYPE,
                                    String.valueOf(entry.getKey().getType()));
                            History.newItem(token.toString(), true);
                        }
                        break;
                    }
                    case POLICY_EDIT: {
                        GWT.log("EDIT POLICY:");
                        for (Map.Entry<GenericPolicy, UserAction> entry : pending.entrySet()) {
                            String policyType = String.valueOf(entry.getKey().getType());
                            String subPresenter = null;

                            if ("BLACKLIST".equals(policyType)) {
                                subPresenter = BLPolicyEditPresenter.PRESENTER_ID;
                            } else if ("WHITELIST".equals(policyType)) {
                                subPresenter = WLPolicyEditPresenter.PRESENTER_ID;
                            } else if ("AUTHZ".equals(policyType)) {
                                subPresenter = AUTHZPolicyEditPresenter.PRESENTER_ID;
                            } else if ("RL".equals(policyType)) {
                                subPresenter = RLPolicyEditPresenter.PRESENTER_ID;
                            }

                            HistoryToken token = makeToken(PolicyController.PRESENTER_ID, subPresenter, null);
                            token.addValue(HistoryToken.SELECTED_POLICY_TOKEN_ID,
                                    String.valueOf(entry.getKey().getId()));
                            token.addValue(HistoryToken.SELECTED_POLICY_TOKEN_TYPE,
                                    String.valueOf(entry.getKey().getType()));

                            if ((entry.getKey().getEnabled()
                                    && permissions.get(entry.getKey()).contains(UserAction.POLICY_DISABLE)
                                    || (!entry.getKey().getEnabled() && permissions.get(entry.getKey())
                                            .contains(UserAction.POLICY_ENABLE)))) {
                                token.addValue(HistoryToken.POLICY_STATUS_EDITABLE, "true");
                            } else {
                                token.addValue(HistoryToken.POLICY_STATUS_EDITABLE, "false");
                            }

                            History.newItem(token.toString(), true);
                        }
                        break;
                    }
                    case POLICY_ENABLE: {
                        for (Map.Entry<GenericPolicy, UserAction> entry : pending.entrySet()) {
                            final GenericPolicy p = entry.getKey();
                            final PolicyKey key = new PolicyKey();
                            key.setId(entry.getKey().getId());
                            key.setName(entry.getKey().getName());
                            key.setType(entry.getKey().getType());
                            GWT.log("Updating status for :" + entry.getKey().getType() + " - "
                                    + entry.getKey().getName());
                            service.enablePolicy(key, new AsyncCallback<EnablePolicyResponse>() {
                                public void onFailure(Throwable arg) {
                                    if (arg.getLocalizedMessage().contains("500")) {
                                        view.error(PolicyAdminUIUtil.messages.serverError(
                                                PolicyAdminUIUtil.policyAdminConstants.genericErrorMessage()));
                                    } else {
                                        view.error(PolicyAdminUIUtil.messages
                                                .serverError(arg.getLocalizedMessage()));
                                    }
                                    GWT.log("ERROR - Enabling fails");
                                }

                                public void onSuccess(EnablePolicyResponse result) {
                                    ((GenericPolicyImpl) p).setEnabled(true);
                                    view.setPolicies(policies);
                                }
                            });
                        }
                        break;
                    }
                    case POLICY_DISABLE: {
                        for (Map.Entry<GenericPolicy, UserAction> entry : pending.entrySet()) {
                            final GenericPolicy p = entry.getKey();
                            final PolicyKey key = new PolicyKey();
                            key.setId(entry.getKey().getId());
                            key.setName(entry.getKey().getName());
                            key.setType(entry.getKey().getType());
                            GWT.log("Updating status for :" + entry.getKey().getType() + " - "
                                    + entry.getKey().getName());
                            service.disablePolicy(key, new AsyncCallback<DisablePolicyResponse>() {
                                public void onFailure(Throwable arg) {
                                    if (arg.getLocalizedMessage().contains("500")) {
                                        view.error(PolicyAdminUIUtil.messages.serverError(
                                                PolicyAdminUIUtil.policyAdminConstants.genericErrorMessage()));
                                    } else {
                                        view.error(PolicyAdminUIUtil.messages
                                                .serverError(arg.getLocalizedMessage()));
                                    }
                                }

                                public void onSuccess(DisablePolicyResponse result) {
                                    ((GenericPolicyImpl) p).setEnabled(false);
                                    view.setPolicies(policies);
                                }
                            });
                        }
                        break;
                    }
                    case POLICY_DELETE: {

                        if (Window.confirm(PolicyAdminUIUtil.policyAdminConstants.deleteSelected())) {

                            for (Map.Entry<GenericPolicy, UserAction> entry : pending.entrySet()) {
                                final PolicyKey key = new PolicyKey();
                                key.setType(entry.getKey().getType());
                                key.setName(entry.getKey().getName());
                                key.setId(entry.getKey().getId());

                                service.deletePolicy(key, new AsyncCallback<DeletePolicyResponse>() {

                                    public void onSuccess(DeletePolicyResponse result) {
                                        ((Button) view.getSearchButton()).click();
                                    }

                                    public void onFailure(Throwable arg) {
                                        if (arg.getLocalizedMessage().contains("500")) {
                                            view.error(PolicyAdminUIUtil.messages
                                                    .serverError(PolicyAdminUIUtil.policyAdminConstants
                                                            .genericErrorMessage()));
                                        } else {
                                            view.error(PolicyAdminUIUtil.messages
                                                    .serverError(arg.getLocalizedMessage()));
                                        }
                                    }
                                });
                            }
                        }

                        break;
                    }
                    case POLICY_EXPORT: {
                        GWT.log("EXPORT POLICY:");
                        StringBuffer downloadUrl = new StringBuffer();
                        downloadUrl.append("/xprtPlc/policy?");

                        int i = 0;
                        for (Map.Entry<GenericPolicy, UserAction> entry : pending.entrySet()) {
                            downloadUrl.append(entry.getKey().getId() + "&");

                            i++;
                            if (i == pending.entrySet().size()) {
                                // all entries are same type
                                downloadUrl.append(entry.getKey().getType() + "&");
                                // user & pass
                                AppUser user = AppUser.getUser();
                                downloadUrl.append(user.getUsername() + "&");
                                downloadUrl.append(user.getPassword());
                            }
                        }

                        Window.open(downloadUrl.toString(), "_blank", "");
                        break;

                    }
                    }
                }

            }

        }
    });
}

From source file:org.ebayopensource.turmeric.policy.adminui.client.presenter.policy.SubjectGroupCreatePresenter.java

License:Open Source License

/**
 * Bind./* w ww  .j ava  2s.  co  m*/
 */
public void bind() {
    this.view.getSearchButton().addClickHandler(new ClickHandler() {
        public void onClick(ClickEvent event) {
            // a search term has been entered
            SubjectGroupCreatePresenter.this.view.getSearchTerm();
            // get the Subject Type
            SubjectGroupCreatePresenter.this.view.getSubjectType();

            // do a lookup of all the matching Subjects
            service = (PolicyQueryService) serviceMap.get(SupportedService.POLICY_QUERY_SERVICE);
            SubjectKey key = new SubjectKey();
            final String searchTerm = SubjectGroupCreatePresenter.this.view.getSearchTerm();
            if (searchTerm != null && !searchTerm.trim().equals("")) {
                key.setName(searchTerm);
            }
            key.setType(SubjectGroupCreatePresenter.this.view.getSubjectType());

            final SubjectQuery query = new SubjectQuery();
            query.setSubjectKeys(Collections.singletonList(key));

            if ("USER".equals(key.getType())) {
                service.findExternalSubjects(query, new AsyncCallback<FindExternalSubjectsResponse>() {

                    public void onFailure(Throwable arg) {
                        if (arg.getLocalizedMessage().contains("500")) {
                            view.error(PolicyAdminUIUtil.messages
                                    .serverError(PolicyAdminUIUtil.policyAdminConstants.genericErrorMessage()));
                        } else {
                            view.error(PolicyAdminUIUtil.messages.serverError(arg.getLocalizedMessage()));
                        }
                    }

                    public void onSuccess(FindExternalSubjectsResponse response) {
                        List<Subject> subjects = response.getSubjects();
                        List<String> names = new ArrayList<String>();
                        if (subjects != null && subjects.size() > 0) {
                            for (Subject s : subjects)
                                names.add(s.getName());
                        } else {
                            view.info(PolicyAdminUIUtil.policyAdminConstants.noItemFoundMessage());
                        }
                        view.setAvailableSubjects(names);

                    }

                });

            } else {
                service.findSubjects(query, new AsyncCallback<FindSubjectsResponse>() {

                    @Override
                    public void onFailure(Throwable arg) {
                        if (arg.getLocalizedMessage().contains("500")) {
                            view.error(PolicyAdminUIUtil.messages
                                    .serverError(PolicyAdminUIUtil.policyAdminConstants.genericErrorMessage()));
                        } else {
                            view.error(PolicyAdminUIUtil.messages.serverError(arg.getLocalizedMessage()));
                        }
                    }

                    @Override
                    public void onSuccess(FindSubjectsResponse response) {
                        List<Subject> subjects = response.getSubjects();
                        List<String> names = new ArrayList<String>();
                        if (subjects != null && subjects.size() > 0) {
                            for (Subject s : subjects) {
                                names.add(s.getName());
                            }
                        } else {
                            final String newSubjectName = query.getSubjectKeys().get(0).getName();
                            final String newSubjectType = query.getSubjectKeys().get(0).getType();
                            if (newSubjectName != null && !newSubjectName.endsWith("%")) { //create a new one
                                if (Window.confirm(
                                        PolicyAdminUIUtil.policyAdminConstants.createInternalSubjects())) {
                                    createInternalSubject(newSubjectName, newSubjectType);
                                    names.add(newSubjectName);
                                }
                            } else { // not found and do not create it
                                view.info(PolicyAdminUIUtil.policyAdminConstants.noItemFoundMessage());
                            }
                        }

                        view.setAvailableSubjects(names);
                    }

                });
            }
        }
    });

    this.view.getCreateButton().addClickHandler(new ClickHandler() {
        public void onClick(ClickEvent event) {
            // Verify that the group has a name, and at least one subject
            String name = SubjectGroupCreatePresenter.this.view.getName();
            if (name == null || name.length() == 0) {
                SubjectGroupCreatePresenter.this.view
                        .error(PolicyAdminUIUtil.policyAdminMessages.nameFieldMessage());
                return;
            }

            String description = SubjectGroupCreatePresenter.this.view.getDescription();

            List<String> subjectNames = SubjectGroupCreatePresenter.this.view.getSelectedSubjects();
            if (subjectNames == null || subjectNames.isEmpty()) {
                SubjectGroupCreatePresenter.this.view
                        .error(PolicyAdminUIUtil.policyAdminMessages.minimumSubjectsMessage());
                return;
            }

            if ("USER".equals(view.getSubjectType())) {
                // external subjects todays are only USER types
                List<Subject> subjects = new ArrayList<Subject>();
                for (String sbName : subjectNames) {
                    SubjectImpl subject = new SubjectImpl();
                    subject.setType("USER");
                    subject.setName(sbName);
                    subjects.add(subject);
                }
                createExternalAsInternalSubject(subjects);
            }

            // user wants to create the Subject Group
            // 1. send the new Subject Group to the server
            // 2. when server acknowledges creation, use the history
            // mechanism to move back to the Subject Group Summary
            service = (PolicyQueryService) serviceMap.get(SupportedService.POLICY_QUERY_SERVICE);
            final SubjectGroupImpl group = new SubjectGroupImpl();
            group.setName(name);
            group.setDescription(description);

            group.setType(SubjectGroupCreatePresenter.this.view.getSubjectType());
            group.setSubjects(subjectNames);
            group.setGroupCalculator(
                    SubjectGroupCreatePresenter.this.view.getSelectedSubjectGroupCalculatorName());

            /**
             * This timer is needed due to GWT has only one thread, so
             * Thread.sleep is not a valid option The purpose of sleeping
             * time is wait until new external subject been created into
             * turmeric db, in order to assign them as internal subjects
             */
            Timer timer = new Timer() {
                public void run() {

                    service.createSubjectGroups(Collections.singletonList((SubjectGroup) group),
                            new AsyncCallback<CreateSubjectGroupsResponse>() {

                                @Override
                                public void onFailure(Throwable arg) {
                                    if (arg.getLocalizedMessage().contains("500")) {
                                        view.error(PolicyAdminUIUtil.messages.serverError(
                                                PolicyAdminUIUtil.policyAdminConstants.genericErrorMessage()));
                                    } else {
                                        view.error(PolicyAdminUIUtil.messages
                                                .serverError(arg.getLocalizedMessage()));
                                    }
                                }

                                @Override
                                public void onSuccess(CreateSubjectGroupsResponse arg0) {
                                    Map<String, String> prefill = new HashMap<String, String>();
                                    prefill.put(HistoryToken.SRCH_SUBJECT_GROUP_TYPE,
                                            SubjectGroupCreatePresenter.this.view.getSubjectType());
                                    prefill.put(HistoryToken.SRCH_SUBJECT_GROUP_NAME,
                                            SubjectGroupCreatePresenter.this.view.getName());
                                    HistoryToken token = makeToken(PolicyController.PRESENTER_ID,
                                            SubjectGroupSummaryPresenter.PRESENTER_ID, prefill);

                                    History.newItem(token.toString(), true);
                                }

                            });

                    view.getCreateButton().setEnabled(true);

                }

            };
            if ("USER".equals(view.getSubjectType())) {
                view.getCreateButton().setEnabled(false);
                timer.schedule(3000);
            } else {
                timer.schedule(1);
            }
        }
    });

    this.view.getCancelButton().addClickHandler(new ClickHandler() {
        public void onClick(ClickEvent event) {
            // Just go back to the summary
            HistoryToken token = makeToken(PolicyController.PRESENTER_ID,
                    SubjectGroupSummaryPresenter.PRESENTER_ID, null);
            History.newItem(token.toString(), true);
        }
    });
}

From source file:org.ebayopensource.turmeric.policy.adminui.client.presenter.policy.SubjectGroupEditPresenter.java

License:Open Source License

/**
 * Bind./*from   www  . j a va2  s .c o  m*/
 */
public void bind() {
    this.view.getSearchButton().addClickHandler(new ClickHandler() {
        public void onClick(ClickEvent event) {
            // do a lookup of all the matching Subjects
            // Get the available subjects of that type
            final SubjectQuery subjectQuery = new SubjectQuery();
            SubjectKey key = new SubjectKey();
            String subName = view.getSearchTerm();
            if (subName != null && !subName.trim().equals(""))
                key.setName(subName);
            key.setType(originalGroup.getType());
            subjectQuery.setSubjectKeys(Collections.singletonList(key));

            if ("USER".equals(key.getType())) {
                service.findExternalSubjects(subjectQuery, new AsyncCallback<FindExternalSubjectsResponse>() {

                    public void onFailure(Throwable arg) {
                        if (arg.getLocalizedMessage().contains("500")) {
                            view.error(PolicyAdminUIUtil.messages
                                    .serverError(PolicyAdminUIUtil.policyAdminConstants.genericErrorMessage()));
                        } else {
                            view.error(PolicyAdminUIUtil.messages.serverError(arg.getLocalizedMessage()));
                        }
                    }

                    public void onSuccess(FindExternalSubjectsResponse response) {
                        List<Subject> subjects = response.getSubjects();
                        List<String> names = new ArrayList<String>();
                        if (subjects != null && subjects.size() > 0) {
                            for (Subject s : subjects)
                                names.add(s.getName());
                        } else {
                            view.info(PolicyAdminUIUtil.policyAdminConstants.noItemFoundMessage());
                        }

                        if (originalGroup.getSubjects() != null) {
                            names.removeAll(originalGroup.getSubjects());
                        }
                        view.setAvailableSubjects(names);

                    }

                });

            } else {
                service.findSubjects(subjectQuery, new AsyncCallback<FindSubjectsResponse>() {

                    public void onFailure(Throwable arg) {
                        if (arg.getLocalizedMessage().contains("500")) {
                            view.error(PolicyAdminUIUtil.messages
                                    .serverError(PolicyAdminUIUtil.policyAdminConstants.genericErrorMessage()));
                        } else {
                            view.error(PolicyAdminUIUtil.messages.serverError(arg.getLocalizedMessage()));
                        }
                    }

                    public void onSuccess(FindSubjectsResponse response) {
                        List<Subject> subjects = response.getSubjects();
                        List<String> names = new ArrayList<String>();
                        if (subjects != null && subjects.size() > 0) {
                            for (Subject s : subjects) {
                                names.add(s.getName());
                            }
                        } else {
                            final String newSubjectName = subjectQuery.getSubjectKeys().get(0).getName();
                            final String newSubjectType = subjectQuery.getSubjectKeys().get(0).getType();
                            if (newSubjectName != null && !newSubjectName.endsWith("%")) {//creates new one
                                if (Window.confirm(
                                        PolicyAdminUIUtil.policyAdminConstants.createInternalSubjects())) {
                                    createInternalSubject(newSubjectName, newSubjectType);
                                    names.add(newSubjectName);
                                }
                            } else { // not found and do not create it
                                view.info(PolicyAdminUIUtil.policyAdminConstants.noItemFoundMessage());
                            }
                        }

                        if (originalGroup.getSubjects() != null) {
                            names.removeAll(originalGroup.getSubjects());
                        }
                        view.setAvailableSubjects(names);
                    }

                });
            }
        }
    });

    this.view.getApplyButton().addClickHandler(new ClickHandler() {
        public void onClick(ClickEvent event) {
            List<String> subjects = SubjectGroupEditPresenter.this.view.getSelectedSubjects();
            if (subjects == null || subjects.isEmpty()) {
                SubjectGroupEditPresenter.this.view
                        .error(PolicyAdminUIUtil.policyAdminMessages.minimumSubjectsMessage());
                return;
            }

            final SubjectGroupImpl editedGroup = new SubjectGroupImpl(originalGroup);
            editedGroup.setName(view.getName());
            editedGroup.setDescription(view.getDescription());
            editedGroup.setSubjects(view.getSelectedSubjects());
            editedGroup.setGroupCalculator(view.getGroupCalculator());

            if ("USER".equals(originalGroup.getType())) {
                // external subjects todays are only USER types
                List<Subject> externalSubjects = new ArrayList<Subject>();
                for (String sb : view.getSelectedSubjects()) {
                    SubjectImpl subject = new SubjectImpl();
                    subject.setType("USER");
                    subject.setName(sb);
                    externalSubjects.add(subject);
                }

                createInternalSubject(externalSubjects);
            }
            /**
             * This timer is needed due to GWT has only one thread, so
             * Thread.sleep is not a valid option The purpose of sleeping
             * time is wait until new external subject been created into
             * turmeric db, in order to assign them as internal subjects
             */
            Timer timer = new Timer() {
                public void run() {

                    service.updateSubjectGroups(Collections.singletonList((SubjectGroup) editedGroup),
                            UpdateMode.REPLACE, new AsyncCallback<UpdateSubjectGroupsResponse>() {

                                public void onFailure(final Throwable arg) {
                                    if (arg.getLocalizedMessage().contains("500")) {
                                        view.error(PolicyAdminUIUtil.messages.serverError(
                                                PolicyAdminUIUtil.policyAdminConstants.genericErrorMessage()));
                                    } else {
                                        view.error(PolicyAdminUIUtil.messages
                                                .serverError(arg.getLocalizedMessage()));
                                    }
                                }

                                public void onSuccess(final UpdateSubjectGroupsResponse response) {
                                    // copy changes from the editedGroup
                                    // back to the group
                                    ((SubjectGroupImpl) originalGroup).setName(view.getName());
                                    ((SubjectGroupImpl) originalGroup).setDescription(view.getDescription());
                                    ((SubjectGroupImpl) originalGroup).setSubjects(view.getSelectedSubjects());
                                    view.clear();
                                    HistoryToken token = makeToken(PolicyController.PRESENTER_ID,
                                            SubjectGroupSummaryPresenter.PRESENTER_ID, null);
                                    token.addValue(HistoryToken.SRCH_SUBJECT_GROUP_TYPE,
                                            originalGroup.getType());
                                    token.addValue(HistoryToken.SRCH_SUBJECT_GROUP_NAME,
                                            originalGroup.getName());
                                    History.newItem(token.toString(), true);
                                }
                            });

                    view.getApplyButton().setEnabled(true);

                }
            };
            if ("USER".equals(originalGroup.getType())) {
                view.getApplyButton().setEnabled(false);
                timer.schedule(3000);
            } else {
                timer.schedule(1);
            }
        }
    });

    this.view.getCancelButton().addClickHandler(new ClickHandler() {
        public void onClick(final ClickEvent event) {
            view.clear();
            // Just go back to the summary
            HistoryToken token = makeToken(PolicyController.PRESENTER_ID,
                    SubjectGroupSummaryPresenter.PRESENTER_ID, null);
            History.newItem(token.toString(), true);
        }
    });
}

From source file:org.ebayopensource.turmeric.policy.adminui.client.presenter.policy.SubjectGroupSummaryPresenter.java

License:Open Source License

/**
 * Bind./* w  w  w  .j  ava  2 s  .c  o m*/
 */
public void bind() {
    // The user wants to search by subject group type + name
    this.view.getSubjectCriteriaButton().addClickHandler(new ClickHandler() {
        public void onClick(final ClickEvent event) {
            view.setAvailableTypes(fetchSubjectTypes());
            view.setSelectedSearchTerm("");
        }
    });

    // the user wants to search by policy type and name
    this.view.getPolicyCriteriaButton().addClickHandler(new ClickHandler() {
        public void onClick(final ClickEvent event) {
            view.setAvailableTypes(fetchPolicyTypes());
            view.setSelectedSearchTerm("");
        }
    });

    this.view.getSearchButton().addClickHandler(new ClickHandler() {
        public void onClick(final ClickEvent event) {
            fetchGroups(view.isSubjectCriteriaEnabled(), view.getSelectedType(), view.getSearchTerm());
        }
    });

    this.view.getActionButton().addClickHandler(new ClickHandler() {
        public void onClick(final ClickEvent event) {
            Map<SubjectGroup, UserAction> pending = view.getPendingActions();
            if (pending == null) {
                return;
            }
            if (pending.size() == 0) {
                return;
            }
            // all user actions have to be the same, so pick the first one
            SubjectGroup group = pending.keySet().iterator().next();
            UserAction action = pending.get(group);
            HistoryToken token;

            switch (action) {
            case SUBJECT_GROUP_VIEW:
                token = makeToken(PolicyController.PRESENTER_ID, SubjectGroupViewPresenter.PRESENTER_ID, null);
                token.addValue(HistoryToken.SELECTED_SUBJECT_GROUP_TOKEN, group.getName());
                token.addValue(HistoryToken.SELECTED_SUBJECT_GROUP_TYPE_TOKEN, group.getType().toString());
                History.newItem(token.toString(), true);
                break;

            case SUBJECT_GROUP_EDIT:
                token = makeToken(PolicyController.PRESENTER_ID, SubjectGroupEditPresenter.PRESENTER_ID, null);
                token.addValue(HistoryToken.SELECTED_SUBJECT_GROUP_TOKEN, group.getName());
                token.addValue(HistoryToken.SELECTED_SUBJECT_GROUP_TYPE_TOKEN, group.getType().toString());
                History.newItem(token.toString(), true);
                break;

            case SUBJECT_GROUP_DELETE:
                if (Window.confirm(PolicyAdminUIUtil.policyAdminConstants.deleteSelected())) {
                    final List<SubjectGroupKey> keys = new ArrayList<SubjectGroupKey>();
                    Iterator<SubjectGroup> itor = pending.keySet().iterator();
                    SubjectGroup groupError = null;
                    while (itor.hasNext() && groupError == null) {
                        SubjectGroup sg = itor.next();

                        if (sg.getPolicies() != null && sg.getPolicies().size() > 0) {
                            groupError = sg;
                        } else {

                            SubjectGroupKey key = new SubjectGroupKey();
                            key.setType(sg.getType());
                            key.setName(sg.getName());
                            key.setId(sg.getId());
                            keys.add(key);
                        }
                    }

                    if (groupError != null) {
                        view.error(PolicyAdminUIUtil.policyAdminConstants.deleteSubjetGroupInvalid());
                    } else {

                        service.deleteSubjectGroups(keys, new AsyncCallback<DeleteSubjectGroupResponse>() {

                            public void onSuccess(final DeleteSubjectGroupResponse result) {
                                // fetchGroups(view.isSearchCriteriaEnabled(),
                                // view.getSelectedType(),
                                // view.getSearchTerm());
                                removeGroups(groups, keys);
                                view.setGroups(groups);
                            }

                            public void onFailure(final Throwable arg) {
                                if (arg.getLocalizedMessage().contains("500")) {
                                    view.error(PolicyAdminUIUtil.messages.serverError(
                                            PolicyAdminUIUtil.policyAdminConstants.genericErrorMessage()));
                                } else {
                                    view.error(
                                            PolicyAdminUIUtil.messages.serverError(arg.getLocalizedMessage()));
                                }
                            }
                        });
                    }
                }
                break;

            case SUBJECT_GROUP_EXPORT:
                GWT.log("EXPORT SG:");

                StringBuffer downloadUrl = new StringBuffer();
                downloadUrl.append("/xprtPlc/sg?");

                int i = 0;
                for (Entry<SubjectGroup, UserAction> entry : pending.entrySet()) {
                    downloadUrl.append(entry.getKey().getId() + "&");

                    i++;
                    if (i == pending.entrySet().size()) {
                        // all entries are same type
                        downloadUrl.append(entry.getKey().getType() + "&");
                        // user & pass
                        AppUser user = AppUser.getUser();
                        downloadUrl.append(user.getUsername() + "&");
                        downloadUrl.append(user.getPassword());
                    }
                }
                Window.open(downloadUrl.toString(), "_blank", "");
                break;

            default:
                break;
            }
        }
    });
}

From source file:org.ebayopensource.turmeric.policy.adminui.client.view.common.FileUploaderWidget.java

License:Open Source License

/**
 * Gets the file uploader widget.//from w  ww  .  ja va  2 s  . c  o  m
 * 
 * @param form
 *            the form
 * @param entity
 *            the entity
 * @return the file uploader widget
 */
public static Widget getFileUploaderWidget(final FormPanel form, final String entity) {

    VerticalPanel holder = new VerticalPanel();
    final FileUpload fu = new FileUpload();

    fu.setName("upload");
    holder.add(fu);
    holder.add(new Button(PolicyAdminUIUtil.policyAdminConstants.importAction(), new ClickHandler() {
        public void onClick(ClickEvent event) {

            if (!fu.getFilename().isEmpty()
                    && Window.confirm(PolicyAdminUIUtil.policyAdminConstants.importAction() + " " + entity
                            + PolicyAdminUIUtil.policyAdminConstants.from() + " " + fu.getFilename() + "?")) {
                form.submit();
            }
        }
    }));

    form.addSubmitHandler(new FormPanel.SubmitHandler() {
        public void onSubmit(SubmitEvent event) {

        }
    });

    form.addSubmitCompleteHandler(new FormPanel.SubmitCompleteHandler() {
        public void onSubmitComplete(SubmitCompleteEvent event) {

            int indexFrom = event.getResults().indexOf("<pre>") + 5;
            int indexTo = event.getResults().indexOf("</pre>");
            if (indexTo - indexFrom > 1) {
                Window.alert(event.getResults().substring(indexFrom, indexTo));
            } else {
                Window.alert(PolicyAdminUIUtil.policyAdminMessages.successfulOperationMessage());
            }

        }
    });

    form.add(holder);

    return form;
}

From source file:org.eclipse.che.ide.ext.datasource.client.ssl.SslKeyStoreManagerPresenter.java

License:Open Source License

/** {@inheritDoc} */
@Override//from   w w  w .  ja  v a2  s . co  m
public void onClientKeyDeleteClicked(@NotNull SslKeyStoreEntry key) {
    boolean needToDelete = Window.confirm(constant.deleteSslKeyQuestion(key.getAlias()));
    if (needToDelete) {
        service.deleteClientKey(key, new AsyncRequestCallback<Void>() {
            @Override
            public void onSuccess(Void result) {
                loader.hide();
                refreshClientKeys();
            }

            @Override
            public void onFailure(Throwable exception) {
                loader.hide();
                Notification notification = new Notification(exception.getMessage(), Type.ERROR);
                notificationManager.showNotification(notification);
                eventBus.fireEvent(new ExceptionThrownEvent(exception));
            }
        });
    }
}

From source file:org.eclipse.che.ide.ext.datasource.client.ssl.SslKeyStoreManagerPresenter.java

License:Open Source License

@Override
public void onServerCertDeleteClicked(SslKeyStoreEntry key) {
    boolean needToDelete = Window.confirm(constant.deleteSslKeyQuestion(key.getAlias()));
    if (needToDelete) {
        service.deleteServerCert(key, new AsyncRequestCallback<Void>() {
            @Override//from   ww w.  j a  v a2s .c om
            public void onSuccess(Void result) {
                refreshServerCerts();
            }

            @Override
            public void onFailure(Throwable exception) {
                Notification notification = new Notification(exception.getMessage(), Type.ERROR);
                notificationManager.showNotification(notification);
                eventBus.fireEvent(new ExceptionThrownEvent(exception));
            }
        });
    }
}

From source file:org.eobjects.datacleaner.monitor.dashboard.widgets.DashboardGroupPanel.java

License:Open Source License

public DashboardGroupPanel(DashboardServiceAsync service, TenantIdentifier tenant, DashboardGroup group,
        boolean isDashboardEditor, boolean displayInfomercial) {
    super();//from   w w w .j  a  va2 s  . co  m
    _tenant = tenant;
    _service = service;
    _group = group;
    _isDashboardEditor = isDashboardEditor;
    _dashboardWidgetCount = 0;

    addStyleName("DashboardGroupPanel");

    _removeGroupButton = new Button("Remove this group");
    _removeGroupButton.addStyleDependentName("ImageTextButton");
    _removeGroupButton.addStyleName("RemoveButton");
    _removeGroupButton.setVisible(false);
    _removeGroupButton.addClickHandler(new ClickHandler() {
        @Override
        public void onClick(ClickEvent event) {
            final boolean confirmation = Window.confirm("Are you sure you wish to remove this group?");
            if (confirmation) {
                _service.removeDashboardGroup(_tenant, _group, new DCAsyncCallback<Boolean>() {
                    @Override
                    public void onSuccess(Boolean result) {
                        if (result != null && result.booleanValue()) {
                            Window.Location.reload();
                        } else {
                            Window.alert("Failed to remove group. Please check server logs for details.");
                        }
                    }
                });
            }
        }
    });

    final Button newTimelineButton;
    if (displayInfomercial && group == null) {
        // this is the "default" group
        add(new HeadingLabel("Welcome"));
        _welcomePanel = new WelcomePanel();
        newTimelineButton = _welcomePanel.getNewTimelineButton();
        add(_welcomePanel);
    } else {
        if (group == null) {
            group = new DashboardGroup(null);
        }
        add(new HeadingLabel(group.getName()));

        if (group.getDescription() != null) {
            add(new Label(group.getDescription()));
        }

        _welcomePanel = null;
        newTimelineButton = new Button("New timeline chart");
        add(newTimelineButton);
        add(_removeGroupButton);
    }

    newTimelineButton.setVisible(_isDashboardEditor);
    newTimelineButton.addStyleDependentName("ImageTextButton");
    newTimelineButton.addStyleName("NewDashboardWidgetButton");
    newTimelineButton.addClickHandler(new CreateTimelineHandler(_service, _tenant, this));

    _service.getTimelines(_tenant, _group, new DCAsyncCallback<List<TimelineIdentifier>>() {
        @Override
        public void onSuccess(List<TimelineIdentifier> result) {
            for (TimelineIdentifier identifier : result) {
                addTimelinePanel(identifier);
            }

            if (_dashboardWidgetCount == 0 && _group != null && !_group.isDefaultGroup()) {
                _removeGroupButton.setVisible(true);
            }
        }
    });
}

From source file:org.eobjects.datacleaner.monitor.dashboard.widgets.TimelinePanel.java

License:Open Source License

public TimelinePanel(TenantIdentifier tenant, DashboardServiceAsync service,
        TimelineIdentifier timelineIdentifier, DashboardGroupPanel timelineGroupPanel,
        boolean isDashboardEditor) {
    super();//from  w w  w .  ja  v a2s . c  o  m
    _tenant = tenant;
    _service = service;
    _timelineIdentifier = timelineIdentifier;
    _timelineGroupPanel = timelineGroupPanel;
    _isDashboardEditor = isDashboardEditor;
    _header = new HeadingLabel("");

    _loadingIndicator = new LoadingIndicator();
    _loadingIndicator.setHeight((DefaultVAxisOption.DEFAULT_HEIGHT + 4) + "px");

    _saveButton = new Button("");
    _saveButton.setVisible(isDashboardEditor);
    _saveButton.addStyleDependentName("ImageButton");
    _saveButton.setTitle("Save timeline");
    _saveButton.addStyleName("SaveButton");
    _saveButton.addClickHandler(new SaveTimelineClickHandler(_service, _tenant, this));

    if (_timelineIdentifier != null) {
        // initially does not make sense to save an (unchanged) and
        // identifyable timeline.
        setTimelineDefinitionUnchanged();
    }

    _deleteButton = new Button();
    _deleteButton.setVisible(isDashboardEditor);
    _deleteButton.addStyleDependentName("ImageButton");
    _deleteButton.setTitle("Delete timeline");
    _deleteButton.addStyleName("DeleteButton");
    _deleteButton.addClickHandler(new ClickHandler() {
        @Override
        public void onClick(ClickEvent event) {
            final boolean confirmation = Window.confirm("Are you sure you wish to delete this timeline?");
            if (confirmation) {
                if (_timelineIdentifier != null) {
                    _service.removeTimeline(_tenant, _timelineIdentifier, new DCAsyncCallback<Boolean>() {
                        @Override
                        public void onSuccess(Boolean result) {
                            // do nothing
                        }
                    });
                }
                _timelineGroupPanel.removeTimelinePanel(TimelinePanel.this);
            }
        }
    });

    addStyleName("TimelinePanel");
    add(createButtonPanel());
    updateHeader();
    setLoading();

    if (_timelineIdentifier != null) {
        _service.getTimelineDefinition(_tenant, _timelineIdentifier, new DCAsyncCallback<TimelineDefinition>() {
            @Override
            public void onSuccess(final TimelineDefinition definition) {
                setTimelineDefinition(definition);
            }
        });
    }
}