Aggiunto a Page private String preDisplayTarget; public String getPreDisplayTarget() { return preDisplayTarget; } public void setPreDisplayTarget(String preDisplayTarget) { this.preDisplayTarget = preDisplayTarget; } Aggiunto a AntRunner /** * Runs a target during the UI * * @param page * @return 0 for success 1 for exception */ protected int runPre(Page page) { Logger logger = ctx.getLogger(); String preTarget = page.getPreDisplayTarget(); if(preTarget != null) { logger.log("Running preDisplayTarget: "+preTarget); // if(launcher == null) { prepareLauncher(); // } launcher.updateProps(); int result = launcher.run(preTarget); logger.log("Exiting from preDisplayTarget: "+preTarget+" with result code "+result); return result; } return 0; } Aggiunto a AutoSwingRunner protected void showFirstPage() throws Exception { Page[] pages = installer.getPages(); // run all postDisplayTargets as if the pages were shown for (int i = 0; i < pages.length; i++) { Page page = pages[i]; + if(page.getPreDisplayTarget() != null){ + if( ifHelper.ifProperty(page) && + ifHelper.ifTarget(page, ctx.getInstaller().getPages()) ){ // page would have been shown + runPre(page); + } } if(page.getPostDisplayTarget() != null){ if( ifHelper.ifProperty(page) && ifHelper.ifTarget(page, ctx.getInstaller().getPages()) ){ // page would have been shown runPost(page); } } } Aggiunto a AutoTextRunner public boolean runInstaller() throws InstallException { Page[] pages = installer.getPages(); // run all postDisplayTargets as if the pages were shown for (int i = 0; i < pages.length; i++) { Page page = pages[i]; + if(page.getPreDisplayTarget() != null) { + if( ifHelper.ifProperty(page) && + ifHelper.ifTarget(page, ctx.getInstaller().getPages()) ) { // page would have been shown + runPre(page); + } + } if(page.getPostDisplayTarget() != null) { if( ifHelper.ifProperty(page) && ifHelper.ifTarget(page, ctx.getInstaller().getPages()) ) { // page would have been shown runPost(page); } } } return true; } Aggiunto a SwingRunner (method public void pageComplete(Page page)) SwingPageRenderer renderer = (SwingPageRenderer)pageRenderers.get(nextIdx); ctx.setCurrentPage(pages[nextIdx]); + runPre(pages[nextIdx]); try { renderNext(renderer); if(i == pages.length - 2) { // all done currentRenderer.getBackButton().setEnabled(false); currentRenderer.getNextButton().setEnabled(false); currentRenderer.getFinishButton().setEnabled(false); currentRenderer.getCancelButton().setEnabled(false); doAnt = true; initialThread.interrupt(); return; } } Aggiunto a TextRunner (method private boolean renderPages(Page[] pages)) if(next instanceof SimpleInputPage) { // skip iftarget specified and missing if(!ifHelper.ifTarget(next, pages)) { continue; } // skip page if ifProperty is specified and property is missing if(!ifHelper.ifProperty(next)) { continue; } } + runPre(next); AbstractTextPageRenderer renderer = RendererFactory.getTextPageRenderer(next); renderer.setContext(ctx); renderer.init(new BufferedReader(new InputStreamReader(System.in)), System.out); ctx.setCurrentPage(next); renderer.renderPage(next);