List of usage examples for org.apache.wicket.ajax AbstractAjaxTimerBehavior AbstractAjaxTimerBehavior
public AbstractAjaxTimerBehavior(final Duration updateInterval)
From source file:com.mycompany.PanelOne.java
License:Apache License
@Override void initForm() { form.add(new AbstractAjaxTimerBehavior(Duration.seconds(5)) { @Override//from ww w. j av a 2s. c om protected void onTimer(AjaxRequestTarget target) { PanelTwo two = new PanelTwo("panel"); //wmc.addOrReplace(two); //PanelOne.this.replaceWith(two); target.add(two); } }); }
From source file:com.mycompany.RunAwayTextPage.java
License:Apache License
private AjaxEventBehavior getRollEvent() { return new AjaxEventBehavior("onMouseOver") { @Override// ww w . ja v a2 s . co m protected void onEvent(AjaxRequestTarget target) { Component comp = this.getComponent(); comp.remove(this); comp.add(new AbstractAjaxTimerBehavior(Duration.milliseconds(20)) { @Override protected void onTimer(AjaxRequestTarget target) { Component comp = this.getComponent(); comp.setDefaultModel(new Model<String>(view.get(part))); part++; if (view.size() <= part) { stop(); part = 0; comp.remove(this); comp.add(getRollEvent()); } target.add(comp); } }); target.add(comp); } }; }
From source file:com.mycompany.TimerPage.java
License:Apache License
public TimerPage() { // final Label timerLabel = new Label("timer", // new AbstractReadOnlyModel<String>() { // @Override // public String getObject() { // SimpleDateFormat formatter = // new SimpleDateFormat("yyyy/MM/dd HH:mm:ss"); // return formatter.format(new Date()); // } // }); // timerLabel.setOutputMarkupId(true); // add(timerLabel); // add(new Image("indicator", AbstractDefaultAjaxBehavior.INDICATOR)); ////from w w w . ja v a 2s . c o m // WebMarkupContainer div = new WebMarkupContainer("dummy"); // div.add(new AbstractAjaxTimerBehavior(Duration.seconds(5)) { // @Override // protected void onTimer(AjaxRequestTarget target) { // target.add(timerLabel); // } // }); // add(div); final String nowTime = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss").format(new Date()); final Label timerLabel = new Label("timer", nowTime); timerLabel.setOutputMarkupId(true); add(timerLabel); add(new Image("indicator", AbstractDefaultAjaxBehavior.INDICATOR)); WebMarkupContainer div = new WebMarkupContainer("dummy"); div.add(new AbstractAjaxTimerBehavior(Duration.seconds(5)) { @Override protected void onTimer(AjaxRequestTarget target) { timerLabel.setDefaultModel( new Model<String>(new SimpleDateFormat("yyyy/MM/dd HH:mm:ss").format(new Date()))); target.add(timerLabel); } }); add(div); }
From source file:com.norconex.jefmon.instance.InstancePanel.java
License:Apache License
public InstancePanel(String id) { super(id);/*from w w w . j a v a 2 s.c om*/ WebMarkupContainer treeDialogWrapper = new WebMarkupContainer(TREE_DIALOG_WRAPPER_ID); treeDialogWrapper.add(new Label(TREE_DIALOG_ID)); treeDialogWrapper.setOutputMarkupId(true); add(treeDialogWrapper); add(new Label("name", getJEFMonConfig().getInstanceName())); final JobTreeProvider provider = new JobTreeProvider(getJobSuitesStatusesMonitor()); IModel<Set<JobStatusTreeNode>> state = new SetModel<JobStatusTreeNode>(new HashSet<JobStatusTreeNode>()); final AbstractTree<JobStatusTreeNode> tree = createTree(provider, state); add(tree); add(new InstanceToolbar("toolbar", tree)); add(new AbstractAjaxTimerBehavior(Duration.seconds(getJEFMonConfig().getDefaultRefreshInterval())) { private static final long serialVersionUID = -8417817690758833175L; @Override protected void onTimer(AjaxRequestTarget target) { target.add(tree); } }); }
From source file:com.norconex.jefmon.instances.InstancesPanel.java
License:Apache License
@Override protected void onInitialize() { super.onInitialize(); setOutputMarkupId(true);// www. ja v a2 s. c om instancesTable = new WebMarkupContainer("instancesTable") { private static final long serialVersionUID = -4821257755526779662L; @Override protected void onBeforeRender() { addOrReplace(createDataView()); super.onBeforeRender(); } }; instancesTable.setOutputMarkupId(true); add(instancesTable); add(new AbstractAjaxTimerBehavior(Duration.seconds(getJEFMonConfig().getDefaultRefreshInterval())) { private static final long serialVersionUID = -4652378407644216362L; @Override protected void onTimer(AjaxRequestTarget target) { target.add(instancesTable); } }); AddInstanceDialog dialog = new AddInstanceDialog("addInstanceDialog") { private static final long serialVersionUID = 1405966469655005795L; @Override protected void onSubmit(AjaxRequestTarget target, String url) { InstancesManager.addInstance(url); target.add(instancesTable); } }; add(dialog); WebMarkupContainer addButton = new WebMarkupContainer("addInstance"); addButton.add(new BootstrapModalLauncher(dialog)); add(addButton); }
From source file:com.servoy.j2db.server.headlessclient.MainPage.java
License:Open Source License
@SuppressWarnings("nls") private void init(WebClient sc) { setStatelessHint(false);// w ww. ja v a2 s . co m client = sc; webForms = new ArrayList<IFormUIInternal<?>>(); title = new Label("title", new Model<String>("Servoy Web Client")); //$NON-NLS-1$ //$NON-NLS-2$ title.setOutputMarkupId(true); add(title); useAJAX = Utils.getAsBoolean(client.getRuntimeProperties().get("useAJAX")); //$NON-NLS-1$ int dataNotifyFrequency = Utils .getAsInteger(sc.getSettings().getProperty("servoy.webclient.datanotify.frequency", "5")); //$NON-NLS-1$ //$NON-NLS-2$ if (dataNotifyFrequency > 0 && useAJAX) { add(new AbstractAjaxTimerBehavior(Duration.seconds(dataNotifyFrequency)) { private static final long serialVersionUID = 1L; @Override protected void onTimer(AjaxRequestTarget target) { if (isServoyEnabled() && !client.getFlattenedSolution().isInDesign(null) && String.valueOf(MainPage.this.getCurrentVersionNumber()) .equals(RequestCycle.get().getRequest().getParameter("pvs"))) { WebEventExecutor.generateResponse(target, MainPage.this); } } @Override public void renderHead(IHeaderResponse response) { if (isServoyEnabled()) { super.renderHead(response); String jsTimerScript = getJsTimeoutCall(getUpdateInterval()); response.renderJavascript("function restartTimer() {" + jsTimerScript + "}", //$NON-NLS-1$//$NON-NLS-2$ "restartTimer"); //$NON-NLS-1$ } } @Override protected CharSequence getPreconditionScript() { return "onAjaxCall(); if(Servoy.DD.isDragging) Servoy.DD.isRestartTimerNeeded=true; return !Servoy.DD.isDragging && !Servoy.redirectingOnSolutionClose;"; //$NON-NLS-1$ } @Override protected CharSequence getFailureScript() { return "onAjaxError();restartTimer();"; //$NON-NLS-1$ } @Override protected CharSequence getCallbackScript() { // if it is not enabled then just return an empty function. so that the timer stops. if (isServoyEnabled()) { return generateCallbackScript("wicketAjaxGet('" + //$NON-NLS-1$ getCallbackUrl(onlyTargetActivePage()) + "&ignoremp=true&pvs=" //$NON-NLS-1$ + MainPage.this.getCurrentVersionNumber() + "'"); } return "Servoy.Utils.nop()"; } @Override public CharSequence getCallbackUrl(boolean onlyTargetActivePage) { if (getComponent() == null) { throw new IllegalArgumentException( "Behavior must be bound to a component to create the URL"); //$NON-NLS-1$ } return getComponent().urlFor(this, AlwaysLastPageVersionRequestListenerInterface.INTERFACE); } @Override protected String findIndicatorId() { return null; // main page defines it and the timer shouldnt show it } /* * this can't be isEnabled(component) of the behavior itself because IE8 will constant call this on closed (modal)windows. So then this is * marked as disabled and an AbortException is thrown what our code sees as a server error and will constantly restart the timer. */ private boolean isServoyEnabled() { return ((getController() != null && getController().isFormVisible()) || closingAsWindow); } }); } add(new TriggerOrientationChangeAjaxBehavior()); add(new TriggerResizeAjaxBehavior()); add(new AbstractServoyLastVersionAjaxBehavior() { @Override protected void execute(AjaxRequestTarget target) { for (ServoyDivDialog divDialog : divDialogs.getOrderedByOpenSequence()) { if (!divDialog.isShown()) { // this means a refresh was probably triggered and we must re-show these... because we do not keep closed dialogs in divDialogs int x = divDialog.getX(); int y = divDialog.getY(); int w = divDialog.getWidth(); int h = divDialog.getHeight(); divDialog.show(target, null); divDialog.setBounds(target, x, y, w, h, null); } } WebEventExecutor.generateResponse(target, MainPage.this); } @Override public void renderHead(IHeaderResponse response) { super.renderHead(response); response.renderOnDomReadyJavascript(getCallbackScript(true).toString()); } @Override public boolean isEnabled(Component component) { return divDialogs.size() > 0 && super.isEnabled(component); } }); body = new WebMarkupContainer("servoy_page") //$NON-NLS-1$ { private static final long serialVersionUID = 1L; /** * @see org.apache.wicket.Component#onComponentTag(org.apache.wicket.markup.ComponentTag) */ @Override protected void onComponentTag(ComponentTag tag) { super.onComponentTag(tag); tag.putAll(bodyAttributes); } }; body.add(new AttributeModifier("dir", true, new AbstractReadOnlyModel<String>() //$NON-NLS-1$ { @Override public String getObject() { String value = AttributeModifier.VALUELESS_ATTRIBUTE_REMOVE; Locale l = client.getLocale(); Solution solution = client.getSolution(); if (solution != null && l != null) { value = OrientationApplier.getHTMLContainerOrientation(l, solution.getTextOrientation()); } return value; } })); add(body); pageContributor = new PageContributor(client, "contribution"); body.add(pageContributor); Label loadingIndicator = new Label("loading_indicator", sc.getI18NMessage("servoy.general.loading")); loadingIndicator.add(new SimpleAttributeModifier("style", "display:none;")); body.add(loadingIndicator); divDialogsParent = new WebMarkupContainer(DIV_DIALOGS_REPEATER_PARENT_ID); divDialogsParent.setOutputMarkupPlaceholderTag(true); divDialogsParent.setVisible(false); body.add(divDialogsParent); if (useAJAX) { add(new TriggerUpdateAjaxBehavior()); // for when another page needs to trigger an ajax update on this page using js (see media upload) divDialogRepeater = new RepeatingView(DIV_DIALOG_REPEATER_ID); divDialogsParent.add(divDialogRepeater); fileUploadWindow = new ServoyDivDialog(FILE_UPLOAD_DIALOG_ID); body.add(fileUploadWindow); fileUploadWindow.setModal(true); fileUploadWindow.setPageMapName(null); fileUploadWindow.setCookieName("dialog_fileupload"); fileUploadWindow.setResizable(true); fileUploadWindow.setInitialHeight(150); fileUploadWindow.setInitialWidth(400); fileUploadWindow.setMinimalHeight(130); fileUploadWindow.setMinimalWidth(400); fileUploadWindow.setUseInitialHeight(true); // no effect, can be removed fileUploadWindow.setPageCreator(new ModalWindow.PageCreator() { private static final long serialVersionUID = 1L; public Page createPage() { return new MediaUploadPage(PageMap.forName(FILE_UPLOAD_PAGEMAP), mediaUploadCallback, mediaUploadMultiSelect, getController().getApplication()); } }); fileUploadWindow.setWindowClosedCallback(new ModalWindow.WindowClosedCallback() { private static final long serialVersionUID = 1L; public void onClose(AjaxRequestTarget target) { divDialogs.remove(FILE_UPLOAD_PAGEMAP); fileUploadWindow.setPageMapName(null); fileUploadWindow.remove(fileUploadWindow.getContentId()); restoreFocusedComponentInParentIfNeeded(); WebEventExecutor.generateResponse(target, findPage()); } }); } else { divDialogsParent.add(new Label("divdialogs")); body.add(new Label("fileuploaddialog")); //$NON-NLS-1$ } IModel<String> styleHrefModel = new AbstractReadOnlyModel<String>() { private static final long serialVersionUID = 1L; @Override public String getObject() { if (main != null) { return getRequest().getRelativePathPrefixToContextRoot() + "servoy-webclient/templates/" + //$NON-NLS-1$ client.getClientProperty(WEBCONSTANTS.WEBCLIENT_TEMPLATES_DIR) + "/servoy_web_client_default.css"; //$NON-NLS-1$ } return null; } }; Label main_form_style = new Label("main_form_style"); //$NON-NLS-1$ main_form_style.add(new AttributeModifier("href", true, styleHrefModel)); //$NON-NLS-1$ add(main_form_style); IModel<List<IFormUIInternal<?>>> loopModel = new AbstractReadOnlyModel<List<IFormUIInternal<?>>>() { private static final long serialVersionUID = 1L; @Override public List<IFormUIInternal<?>> getObject() { return webForms; } }; listview = new ListView<IFormUIInternal<?>>("forms", loopModel) //$NON-NLS-1$ { private static final long serialVersionUID = 1L; @Override protected void populateItem(ListItem<IFormUIInternal<?>> item) { final WebForm form = (WebForm) item.getModelObject(); tempRemoveMainForm = true; try { if (form.getParent() != null) { form.remove(); // TODO isn't this already done by item.add(form) below in wicket's impl? } item.add(form); } finally { tempRemoveMainForm = false; } IFormLayoutProvider layoutProvider = FormLayoutProviderFactory.getFormLayoutProvider(client, client.getSolution(), form.getController().getForm(), form.getController().getName()); TextualStyle styleToReturn = null; if ((navigator != null) && (form == navigator.getFormUI())) { styleToReturn = layoutProvider.getLayoutForForm(navigator.getForm().getSize().width, true, false); } else if (form == main) { int customNavWidth = 0; if (navigator != null) customNavWidth = navigator.getForm().getSize().width; styleToReturn = layoutProvider.getLayoutForForm(customNavWidth, false, false); } if (styleToReturn != null) { form.add(new StyleAppendingModifier(styleToReturn) { @Override public boolean isEnabled(Component component) { // Laurian: looks like bogus condition, shouldn't this be || as in WebForm ? return (component.findParent(WebTabPanel.class) == null) && (component.findParent(WebSplitPane.class) == null); } }); } TabIndexHelper.setUpTabIndexAttributeModifier(item, ISupportWebTabSeq.SKIP); } @Override protected ListItem<IFormUIInternal<?>> newItem(final int index) { return new ListItem<IFormUIInternal<?>>(index, getListItemModel(getModel(), index)) { @Override public void remove(Component component) { super.remove(component); // for example when a form is shown in a popup form (window plugin) it must know that it's main page changed if (!tempRemoveMainForm && component instanceof WebForm) { WebForm formUI = ((WebForm) component); if (MainPage.this == formUI.getMainPage()) { // if the form is visible and it will be now removed from the mainpage // then call notifyVisble false on it to let the form know it will hide // we can't do much if that is blocked by an onhide here. // (could be triggered by a browser back button) if (formUI.getController().isFormVisible()) { List<Runnable> invokeLaterRunnables = new ArrayList<Runnable>(); formUI.getController().notifyVisible(false, invokeLaterRunnables); Utils.invokeLater(client, invokeLaterRunnables); } formUI.setMainPage(null); } } } }; } /** * @see org.apache.wicket.markup.html.list.ListView#onBeforeRender() */ @Override protected void onBeforeRender() { super.onBeforeRender(); // now first initialize all the tabs so that data from // tab x doesn't change anymore (so that it could alter data in tab y) // don't know if this still does anything because we need to do it // in the onBeforeRender of WebTabPanel itself, else tableviews don't have there models yet.. visitChildren(WebTabPanel.class, new IVisitor<WebTabPanel>() { public Object component(WebTabPanel wtp) { wtp.initalizeFirstTab(); return IVisitor.CONTINUE_TRAVERSAL; } }); addWebAnchoringInfoIfNeeded(); } }; listview.setReuseItems(true); // if versioning is disabled then table views can go wrong (don't rollback on a submit) //listview.setVersioned(false); Form form = new ServoyForm("servoy_dataform"); //$NON-NLS-1$ form.add(new SimpleAttributeModifier("autocomplete", "off")); //$NON-NLS-1$ //$NON-NLS-2$ if (useAJAX) form.add(new SimpleAttributeModifier("onsubmit", "return false;")); //$NON-NLS-1$ //$NON-NLS-2$ form.add(listview); WebMarkupContainer defaultButton = new WebMarkupContainer("defaultsubmitbutton", new Model()); //$NON-NLS-1$ defaultButton.setVisible(!useAJAX); form.add(defaultButton); StylePropertyChangeMarkupContainer container = new StylePropertyChangeMarkupContainer("externaldivsparent"); form.add(container); PageContributorRepeatingView repeatingView = new PageContributorRepeatingView("externaldivs", container); container.add(repeatingView); pageContributor.addRepeatingView(repeatingView); body.add(form); }
From source file:com.userweave.pages.test.DisplaySurveyUI.java
License:Open Source License
private void addModalWindow(SurveyExecution surveyExecution) { String ID = "modalWindow"; if (surveyExecution == null || evaluateError(surveyExecution) != ErrorType.NONE || studyService.isAtLeastOneAdminRegistered(surveyExecution.getStudy().getParentProject())) { add(new WebMarkupContainer(ID)); } else {// w ww . j a v a2 s.c o m final ModalWindow modalWindow = new CustomModalWindow(ID); modalWindow.setInitialHeight(379); add(modalWindow); modalWindow.add(new AbstractAjaxTimerBehavior(Duration.seconds(1)) { private static final long serialVersionUID = 1L; @Override protected void onTimer(AjaxRequestTarget target) { this.stop(); modalWindow.show(target); } }); modalWindow.setPageCreator(new ModalWindow.PageCreator() { private static final long serialVersionUID = 1L; @Override public Page createPage() { return new InformAboutIncompleteRegistrationPage(modalWindow); } }); } }
From source file:de.heartbeat.backend.dashboard.HeartBeatOverview.java
License:Apache License
public HeartBeatOverview(PageParameters parameters) { super(parameters); final WebMarkupContainer table = new WebMarkupContainer("table"); WebMarkupContainer alertTable = new WebMarkupContainer("alertTable"); table.setOutputMarkupId(true);// w ww .j a v a2 s. co m table.add(new AbstractAjaxTimerBehavior(Duration.seconds(10)) { @Override protected void onTimer(AjaxRequestTarget art) { heartBeatList.clear(); session = sessionFactory.openSession(); session.beginTransaction(); heartBeatList .addAll(session.createCriteria(HeartBeat.class).add(Restrictions.eq("alert", true)).list()); session.getTransaction().commit(); session.close(); Collections.sort(heartBeatList); Collections.reverse(heartBeatList); art.add(table); } }); session = sessionFactory.openSession(); session.beginTransaction(); heartBeatList.addAll(session.createCriteria(HeartBeat.class).add(Restrictions.eq("alert", true)).list()); session.getTransaction().commit(); session.close(); Collections.sort(heartBeatList); Collections.reverse(heartBeatList); ListView alertView = new ListView("heartBeatAlertView", heartBeatList) { @Override protected void populateItem(ListItem item) { final HeartBeat hb = (HeartBeat) item.getModelObject(); final Person pers = hb.getPerson(); DateTime date = new DateTime(hb.getTime()); DateTimeFormatter fmt = DateTimeFormat.forPattern("dd.MM.yyyy HH:mm:ss"); String str = fmt.print(date); item.add(new Label("name", pers.getFirstName() + " " + pers.getLastName())); item.add(new Label("time", str)); item.add(new Label("pulse", hb.getPulse())); item.add(new Label("adress", pers.getAdress())); item.add(new Link("skypeCall") { @Override public void onClick() { try { hb.setCalled(true); Session session = sessionFactory.openSession(); session.beginTransaction(); session.saveOrUpdate(hb); session.getTransaction().commit(); session.close(); Skype.call(Constants.SKYPE_FRIEND_NICKNAME); } catch (SkypeException ex) { Logger.getLogger(HeartBeatOverview.class.getName()).log(Level.SEVERE, null, ex); } } }); item.add(new Link("skypeMessage") { @Override public void onClick() { try { String message = "dude, dein Puls"; Skype.chat(Constants.SKYPE_FRIEND_NICKNAME).send(message); } catch (SkypeException ex) { Logger.getLogger(HeartBeatOverview.class.getName()).log(Level.SEVERE, null, ex); } } }); Link emergency = new Link("emergency") { @Override public void onClick() { hb.setAlert(true); hb.setEmergency(true); Session session = sessionFactory.openSession(); session.beginTransaction(); session.saveOrUpdate(hb); session.getTransaction().commit(); session.close(); } }; Link archive = new Link("archived") { @Override public void onClick() { hb.setCalled(false); hb.setAlert(false); hb.setArchived(true); Session session = sessionFactory.openSession(); session.beginTransaction(); session.saveOrUpdate(hb); session.getTransaction().commit(); session.close(); heartBeatList.remove(hb); } }; emergency.setVisible(hb.isCalled()); item.add(emergency); archive.setVisible(hb.isEmergency()); item.add(archive); } }; alertTable.add(alertView); table.add(alertTable); add(table); }
From source file:eu.esdihumboldt.hale.server.webtransform.war.pages.StatusPage.java
License:Open Source License
@Override protected void addControls(boolean loggedIn) { super.addControls(loggedIn); final String workspaceId = getPageParameters().get(PARAMETER_WORKSPACE).toOptionalString(); if (workspaceId == null || workspaceId.isEmpty()) { throw new AbortWithHttpErrorCodeException(HttpServletResponse.SC_NOT_FOUND, "Workspace ID not specified."); }/*from ww w .j av a 2 s . c om*/ try { workspaces.getWorkspaceFolder(workspaceId); } catch (FileNotFoundException e) { throw new AbortWithHttpErrorCodeException(HttpServletResponse.SC_NOT_FOUND, "Workspace does not exist."); } final IModel<TransformationWorkspace> workspace = new LoadableDetachableModel<TransformationWorkspace>() { private static final long serialVersionUID = 2600444242247550094L; @Override protected TransformationWorkspace load() { return new TransformationWorkspace(workspaceId); } }; // job panel final Serializable family = AbstractTransformationJob.createFamily(workspaceId); final JobPanel jobs = new JobPanel("jobs", family, true); add(jobs); // status final Label status = new Label("status", new LoadableDetachableModel<String>() { private static final long serialVersionUID = -4351763182104835300L; @Override protected String load() { if (workspace.getObject().isTransformationFinished()) { if (workspace.getObject().isTransformationSuccessful()) { return "Transformation completed."; } else { return "Transformation failed."; } } else { if (Job.getJobManager().find(family).length > 0) { return "Transformation is running:"; } else { return "No transformation running."; } } } }); status.setOutputMarkupId(true); add(status); // result final WebMarkupContainer result = new WebMarkupContainer("result"); result.setOutputMarkupId(true); add(result); final WebMarkupContainer update = new WebMarkupContainer("update") { private static final long serialVersionUID = -2591480922683644827L; @Override public boolean isVisible() { return workspace.getObject().isTransformationFinished(); } }; result.add(update); // result : report File reportFile = workspace.getObject().getReportFile(); DownloadLink report = new DownloadLink("log", reportFile, reportFile.getName()); update.add(report); // result : file list IModel<? extends List<File>> resultFilesModel = new LoadableDetachableModel<List<File>>() { private static final long serialVersionUID = -7971872898614031331L; @Override protected List<File> load() { return Arrays.asList(workspace.getObject().getTargetFolder().listFiles()); } }; final ListView<File> fileList = new ListView<File>("file", resultFilesModel) { private static final long serialVersionUID = -8045643864251639540L; @Override protected void populateItem(ListItem<File> item) { // download link DownloadLink download = new DownloadLink("download", item.getModelObject(), item.getModelObject().getName()); item.add(download); // file name download.add(new Label("name", item.getModelObject().getName())); } }; update.add(fileList); // leaseEnd String leaseEnd; try { leaseEnd = workspaces.getLeaseEnd(workspaceId).toString(DateTimeFormat.mediumDateTime()); } catch (IOException e) { leaseEnd = "unknown"; } add(new Label("leaseEnd", leaseEnd)); boolean transformationFinished = workspace.getObject().isTransformationFinished(); if (transformationFinished) { // disable job timer jobs.getTimer().stopOnNextUpdate(); } else { // timer add(new AbstractAjaxTimerBehavior(Duration.milliseconds(1500)) { private static final long serialVersionUID = -3726349470723024150L; @Override protected void onTimer(AjaxRequestTarget target) { if (workspace.getObject().isTransformationFinished()) { // update status and result target.add(status); target.add(result); // stop timers stop(target); jobs.getTimer().stopOnNextUpdate(); } } }); } }
From source file:io.ucoin.ucoinj.web.components.progressionModel.ProgressionPanel.java
License:Open Source License
public ProgressionPanel(String id, IModel<ProgressionModel> model) { super(id, model); // Timer//from w ww. j a v a2s.co m timer = new AbstractAjaxTimerBehavior(Duration.ONE_SECOND) { private static final long serialVersionUID = 1L; @Override protected void onTimer(AjaxRequestTarget target) { if (stopped) { ProgressionPanel.this.stop(target); return; } ProgressionModel progressionModel = getModelObject(); if (progressionModel != null) { synchronized (progressionModel) { if (progressionModel.getStatus() == ProgressionModel.Status.FAILED || progressionModel.getStatus() == ProgressionModel.Status.STOPPED) { error(progressionModel.getMessage()); } else { info(progressionModel.getMessage()); } } } progressBar.refresh(target); target.add(feedback, progressBar, taskLabel); } }; add(timer); // Job label taskLabel = new Label("taskLabel", new PropertyModel<String>(model, "task")); taskLabel.setOutputMarkupId(true); add(taskLabel); // ProgressBar this.progressBar = new ProgressBar("progress", new PropertyModel<Integer>(model, "current")) { private static final long serialVersionUID = 1L; @Override protected void onComplete(AjaxRequestTarget target) { timer.stop(target); // wicket6 getFeedbackMessages().clear(); ProgressionPanel.this.onComplete(target); } }; // progressBar.add(new AjaxSelfUpdatingTimerBehavior(Duration.ONE_SECOND)); progressBar.setOutputMarkupId(true); progressBar.setVisibilityAllowed(true); add(progressBar); // FeedbackPanel feedback = new JQueryFeedbackPanel("feedback", this); feedback.setOutputMarkupId(true); add(feedback); }