protected void renumberProject() throws Exception { Session session = SessionFactory.getInstance().getSession(false); // renumber tasks Map<Long, Long> idMap = new HashMap<Long, Long>(); for (TaskData task : (Collection<TaskData>) projectData.getTasks()) { long oldUniqueId = task.getUniqueId(); long uniqueId = session.getId(); task.setUniqueId(uniqueId); idMap.put(oldUniqueId, uniqueId); if (task.getAssignments() != null) for (AssignmentData assignment : (Collection<AssignmentData>) task.getAssignments()) { assignment.setTaskId(uniqueId); } } Collection<DistributionData> dists = (Collection<DistributionData>) projectData.getDistributions(); if (dists != null) for (Iterator<DistributionData> i = dists.iterator(); i.hasNext(); ) { DistributionData dist = i.next(); dist.setTaskId(idMap.get(dist.getTaskId())); } // renumber project projectData.setUniqueId(session.getId()); }
public void doStartupAction( final GraphicManager gm, final long projectId, final String[] projectUrls, final boolean welcome, boolean readOnly, final Map<String, String> args) { this.args = args; log.debug("Start up action: " + projectId); if (Environment.isClientSide() && !Environment.isTesting()) { log.debug("Start up action: A"); if (projectId > 0) { log.debug("Start up action: B"); Boolean writable = null; if (readOnly) writable = Boolean.FALSE; else writable = verifyOpenWritable(projectId); if (writable == null) return; AssignmentService.getInstance().setSubstituting(args.get("oldResourceId") != null); log.info("Load document: " + projectUrls); gm.loadDocument( projectId, true, !writable, new Closure() { public void execute(Object arg0) { log.debug("Start up action: D"); Project project = (Project) arg0; DocumentFrame frame = gm.getCurrentFrame(); if (frame != null && frame.getProject().getUniqueId() != projectId) { log.debug("Start up action: E"); gm.switchToProject(projectId); } log.debug("Start up action: F"); if (args.get("oldResourceId") != null) { // see if need to substitute // JGao 6/3/2009 Need to set initial ids to make sure before doing resource // substitution if (project.getInitialTaskIds() == null) project.setInitialIds(); final long oldResourceId = Long.parseLong(args.get("oldResourceId")); final long newResourceId = Long.parseLong(args.get("newResourceId")); final Date startingFrom = DateTime.parseZulu(args.get("startingFrom")); final int[] taskIds = StringList.parseAsIntArray(args.get("commaSeparatedTaskIds")); AssignmentService.getInstance() .replaceResource( projectId, oldResourceId, newResourceId, startingFrom, taskIds); if (GraphicManager.getInstance() != null) GraphicManager.getInstance().setEnabledDocumentMenuActions(true); args.put("oldResourceId", null); // avoid doing again AssignmentService.getInstance().setSubstituting(false); log.debug("Start up action: G"); } } }); } else if (projectUrls != null && projectUrls.length > 0) { log.info("Load document: " + projectUrls[0]); gm.loadLocalDocument(projectUrls[0], !Environment.getStandAlone(), true); } } if (serverUrl != null) { if (opts.get("auth") != null) { String username = (String) ((LinkedList) opts.get("auth")).get(1); String password = (String) ((LinkedList) opts.get("auth")).get(2); TracImporter importer = new TracImporter(serverUrl, username, password); String msg = importer.checkConnection(); if (msg != null) {} try { importer.importByQuery("status!=close"); } catch (XmlRpcException e) { e.printStackTrace(); } Project project = importer.getProject(); String HTTP_PREFIX = "http://"; project.setFileName( HTTP_PREFIX + username + ":" + password + "@" + serverUrl.substring(HTTP_PREFIX.length())); project.initialize(false, false); project.setBoundsAfterReadProject(); Environment.setImporting(false); project.setWasImported(true); final Session session = SessionFactory.getInstance().getSession(true); session.refreshMetadata(project); session.readCurrencyData(project); return; } else { SwingUtilities.invokeLater( new Runnable() { public void run() { if (Environment.isOpenProj() && !Environment.isPlugin()) { // LicenseDialog.showDialog(gm.getFrame(),false); UserInfoDialog.showDialog(gm.getFrame(), false); // TryPODDialog.maybeShow(gm.getFrame(),false); // UpdateChecker.checkForUpdateInBackground(); } if (welcome && !Environment.isPlugin()) { if (Environment.isOpenProj()) { // LicenseDialog.showDialog(gm.getFrame(),false); // TipOfTheDay.showDialog(gm.getFrame(), false); } else { if (Environment.isNeedToRestart()) return; if (!LafManagerImpl .isLafOk()) // for startup glitch - we don't want people to work until // restarting. return; // // String lastVersion = // Preferences.userNodeForPackage(StartupFactory.class).get("lastVersion","0"); // String thisVersion = VersionUtils.getVersion(); // System.out.println("last version " + lastVersion + " this version " + // thisVersion); // if (!lastVersion.equals(thisVersion)) { // // Preferences.userNodeForPackage(StartupFactory.class).put("lastVersion",thisVersion); // String javaVersion = System.getProperty("java.version"); // if (javaVersion.equals("1.6.0_04") || javaVersion.equals("1.6.0_05")) // Alert.warn("Project-ON-Demand has been updated. Please close your // browser completely and restart it to complete the upgrade process."); // return; // } } gm.doWelcomeDialog(); } if (Environment.isPlugin()) gm.doNewProjectNoDialog(opts); } }); } } }