Example usage for com.google.gwt.user.client Timer schedule

List of usage examples for com.google.gwt.user.client Timer schedule

Introduction

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

Prototype

public synchronized void schedule(int delayMs) 

Source Link

Document

Schedules a timer to elapse in the future.

Usage

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

License:Open Source License

/**
 * Bind.//from   www  .  ja  v  a  2 s  . co  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.WLPolicyCreatePresenter.java

License:Open Source License

@Override
protected final void bindSaveButton() {
    {//  w w w  .  j a v  a 2s .c  om
        // fired on saved policy
        this.view.addSaveButtonClickHandler(new ClickHandler() {
            public void onClick(final ClickEvent event) {

                final GenericPolicy p = getPolicy(view.getPolicyName().getValue(), "WHITELIST",
                        view.getPolicyDesc().getValue(), resourceAssignments,
                        view.getSubjectContentView().getAssignments(), null);

                /**
                 * 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.createPolicy(p,
                                new AsyncCallback<org.ebayopensource.turmeric.policy.adminui.client.model.policy.PolicyQueryService.CreatePolicyResponse>() {

                                    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 org.ebayopensource.turmeric.policy.adminui.client.model.policy.PolicyQueryService.CreatePolicyResponse response) {

                                        WLPolicyCreatePresenter.this.view.clear();
                                        clearLists();
                                        HistoryToken token = makeToken(PolicyController.PRESENTER_ID,
                                                PolicySummaryPresenter.PRESENTER_ID, null);
                                        History.newItem(token.toString(), true);
                                    }
                                });

                        view.getSaveButton().setEnabled(true);
                    }

                };
                if (view.getSubjectContentView().getAssignments().size() > 0 && "USER"
                        .equals(view.getSubjectContentView().getAssignments().get(0).getSubjectType())) {
                    view.getSaveButton().setEnabled(false);
                    timer.schedule(3000);
                } else {
                    timer.schedule(1);
                }

            }
        });
    }
}

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

License:Open Source License

@Override
protected final void bindSaveButton() {

    // fired on saved policy
    this.view.addSaveButtonClickHandler(new ClickHandler() {
        public void onClick(final ClickEvent event) {
            GWT.log("EDITION MODE:");

            final GenericPolicy p = getPolicy(view.getPolicyName().getValue(), originalPolicyType,
                    view.getPolicyDesc().getValue(), resourceAssignments, subjectAssignments,
                    view.getPolicyEnabled(), Long.valueOf(originalPolicyId), null);

            GWT.log("Updating policy: " + p.getId() + "-" + p.getName());
            /**/*from  w w w  .  j  a va 2s  . co  m*/
             * 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.updatePolicy(UpdateMode.REPLACE, p, new AsyncCallback<UpdatePolicyResponse>() {

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

                        public void onSuccess(UpdatePolicyResponse response) {
                            GWT.log("Updated policy");
                            WLPolicyEditPresenter.this.view.clear();
                            clearLists();
                            HistoryToken token = makeToken(PolicyController.PRESENTER_ID,
                                    PolicySummaryPresenter.PRESENTER_ID, null);

                            // Prefill the summary search with
                            // the policy we just modified
                            token.addValue(HistoryToken.SRCH_POLICY_TYPE, originalPolicyType);
                            token.addValue(HistoryToken.SRCH_POLICY_NAME, p.getName());
                            History.newItem(token.toString(), true);
                        }
                    });

                    view.getSaveButton().setEnabled(true);
                }

            };
            if (view.getSubjectContentView().getAssignments().size() > 0
                    && "USER".equals(view.getSubjectContentView().getAssignments().get(0).getSubjectType())) {
                view.getSaveButton().setEnabled(false);
                timer.schedule(3000);
            } else {
                timer.schedule(1);
            }
        }
    });

}

From source file:org.eclipse.che.ide.console.AbstractOutputCustomizer.java

License:Open Source License

/**
 * Finds a file by its path, opens it in editor and sets the text selection and reveals according
 * to the specified line and column numbers
 *
 * @param file//from w  ww.  j  av  a 2s  .c o  m
 * @param lineNumber
 * @param columnNumber
 */
protected void openFileInEditorAndReveal(AppContext appContext, EditorAgent editorAgent, Path file,
        final int lineNumber, final int columnNumber) {
    appContext.getWorkspaceRoot().getFile(file).then(optional -> {
        if (optional.isPresent()) {
            editorAgent.openEditor(optional.get(), new OpenEditorCallbackImpl() {
                @Override
                public void onEditorOpened(EditorPartPresenter editor) {
                    Timer t = new Timer() {
                        @Override
                        public void run() {
                            EditorPartPresenter editorPart = editorAgent.getActiveEditor();
                            selectRange(editorPart, lineNumber, columnNumber);
                        }
                    };
                    t.schedule(500);
                }

                @Override
                public void onEditorActivated(EditorPartPresenter editor) {
                    selectRange(editor, lineNumber, columnNumber);
                }
            });
        }
    });
}

From source file:org.eclipse.che.ide.console.DefaultOutputCustomizer.java

License:Open Source License

/**
 * A callback that is to be called for an anchor
 * // w ww  .j  a v  a2  s.  com
 * @param qualifiedName
 * @param fileName
 * @param lineNumber
 */
public void handleAnchorClick(String qualifiedName, String fileName, final int lineNumber) {
    if (qualifiedName == null || fileName == null) {
        return;
    }

    String qualifiedClassName = qualifiedName.lastIndexOf('.') != -1
            ? qualifiedName.substring(0, qualifiedName.lastIndexOf('.'))
            : qualifiedName;
    final String packageName = qualifiedClassName.lastIndexOf('.') != -1
            ? qualifiedClassName.substring(0, qualifiedClassName.lastIndexOf('.'))
            : "";

    String relativeFilePath = (packageName.isEmpty() ? "" : (packageName.replace(".", "/") + "/")) + fileName;

    collectChildren(appContext.getWorkspaceRoot(), Path.valueOf(relativeFilePath)).then(files -> {
        if (!files.isEmpty()) {
            editorAgent.openEditor(files.get(0), new OpenEditorCallbackImpl() {
                @Override
                public void onEditorOpened(EditorPartPresenter editor) {
                    Timer t = new Timer() {
                        @Override
                        public void run() {
                            EditorPartPresenter editorPart = editorAgent.getActiveEditor();
                            selectRange(editorPart, lineNumber);
                        }
                    };
                    t.schedule(500);
                }

                @Override
                public void onEditorActivated(EditorPartPresenter editor) {
                    selectRange(editor, lineNumber);
                }
            });

        }
    });
}

From source file:org.eclipse.che.ide.flux.liveedit.CheFluxLiveEditExtension.java

License:Open Source License

public void substituteAndConnect(final String previewUrl) {
    macroProcessor.expandMacros(previewUrl).then(new Operation<String>() {
        @Override// w w  w .j  a  v a  2 s  .c  o m
        public void apply(final String url) throws OperationException {
            if (url.contains("$")) {
                Timer t = new Timer() {
                    @Override
                    public void run() {
                        substituteAndConnect(url);
                    }
                };
                Log.info(CheFluxLiveEditExtension.class, "Retrieving the preview url for " + url);
                t.schedule(1000);
                return;
            }
            connectToFlux(url);

        }
    });
}

From source file:org.eclipse.che.ide.flux.liveedit.CheFluxLiveEditExtension.java

License:Open Source License

private void initCursorHandler() {
    if (socket != null) {
        cursorModelForPairProgramming = new CursorModelForPairProgramming(documentMain, socket, editorAgent,
                channelName, userId);//from w ww  .j a v  a2s  .  co  m
        return;
    }
    Timer t = new Timer() {
        @Override
        public void run() {
            initCursorHandler();
        }
    };
    t.schedule(1000);
}

From source file:org.eclipse.che.ide.notification.NotificationContainerItem.java

License:Open Source License

/** {@inheritDoc} */
@Override/*from ww w.  j ava 2  s . com*/
public void onBrowserEvent(Event event) {
    super.onBrowserEvent(event);

    switch (DOM.eventGetType(event)) {
    case Event.ONCLICK:
        clickCount++;
        if (clickCount == 1) {
            Timer timer = new Timer() {
                @Override
                public void run() {
                    if (clickCount == 1) {
                        clickCount = 0;
                        delegate.onClick(notification);
                    }
                }
            };
            timer.schedule(200);
        }
        break;
    case Event.ONDBLCLICK:
        clickCount = 0;
        delegate.onDoubleClick(notification);
        break;
    }
}

From source file:org.eclipse.che.ide.notification.NotificationPopup.java

License:Open Source License

/** {@inheritDoc} */
@Override//w  ww. j  a  v  a2s.  c  om
public void onBrowserEvent(Event event) {
    super.onBrowserEvent(event);

    switch (DOM.eventGetType(event)) {
    case ONCLICK:
        clickCount++;
        if (clickCount == 1) {
            Timer timer = new Timer() {
                @Override
                public void run() {
                    if (clickCount == 1) {
                        clickCount = 0;
                        delegate.onClick(notification);
                    }
                }
            };
            timer.schedule(200);
        }
        break;

    case ONDBLCLICK:
        clickCount = 0;
        delegate.onDoubleClick(notification);
        break;

    case ONMOUSEOVER:
        hideTimer.cancel();
        break;

    case ONMOUSEOUT:
        if (notification.getStatus() == PROGRESS) {
            hideTimer.cancel();
        } else {
            hideTimer.schedule(DEFAULT_TIME);
        }
        break;
    }
}

From source file:org.eclipse.che.ide.part.editor.EmptyEditorsPanel.java

License:Open Source License

@Inject
public EmptyEditorsPanel(ActionManager actionManager, Provider<PerspectiveManager> perspectiveManagerProvider,
        KeyBindingAgent keyBindingAgent, ProductInfoDataProvider productInfoDataProvider, AppContext appContext,
        EventBus eventBus, CoreLocalizationConstant localizationConstant, NewFileAction newFileAction,
        CreateProjectAction createProjectAction, ImportProjectAction importProjectAction) {
    this(actionManager, perspectiveManagerProvider, keyBindingAgent, appContext, localizationConstant,
            newFileAction, createProjectAction, importProjectAction);

    eventBus.addHandler(ResourceChangedEvent.getType(), this);
    logo.appendChild(new SVGImage(productInfoDataProvider.getLogo()).getSvgElement().getElement());
    //Sometimes initialization of Create/Import Project actions are completed after the Empty editor page is rendered.
    //In this case we need to wait when actions will be initialized.
    Timer hoverToRenderTimer = new Timer() {
        @Override//from   w ww.  j a  v  a  2  s . c  o  m
        public void run() {
            renderNoProjects();
        }
    };
    hoverToRenderTimer.schedule(500);
}