List of usage examples for com.google.gwt.user.client Timer schedule
public synchronized void schedule(int delayMs)
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); }