예제 #1
0
  /*
   * (non-Javadoc)
   * @see org.eclipse.core.runtime.Plugins#start(org.osgi.framework.BundleContext)
   */
  public void start(BundleContext context) throws Exception {
    super.start(context);
    plugin = this;

    ISavedState lastState =
        ResourcesPlugin.getWorkspace().addSaveParticipant(this, new WorkspaceSaveParticipant());
    if (lastState != null) {
      IPath location = lastState.lookup(new Path(SiteConnectionManager.STATE_FILENAME));
      if (location != null) {
        SiteConnectionManager.getInstance().loadState(getStateLocation().append(location));
      }
      location = lastState.lookup(new Path(DefaultSiteConnection.STATE_FILENAME));
      if (location != null) {
        DefaultSiteConnection.getInstance().loadState(getStateLocation().append(location));
      }
    }

    // For 1.5 compatibility
    lastState =
        ResourcesPlugin.getWorkspace()
            .addSaveParticipant(
                CorePlugin.getDefault(),
                new ISaveParticipant() {

                  public void doneSaving(ISaveContext context) {}

                  public void prepareToSave(ISaveContext context) throws CoreException {}

                  public void rollback(ISaveContext context) {}

                  public void saving(ISaveContext context) throws CoreException {}
                });
    if (lastState != null) {
      IPath location = lastState.lookup(new Path("save")); // $NON-NLS-1$
      if (location != null) {
        IPath absoluteLocation = CorePlugin.getDefault().getStateLocation().append(location);
        // only loads it once
        SiteConnectionManager.getInstance().loadState(absoluteLocation);
        File file = absoluteLocation.toFile();
        if (!file.renameTo(new File(absoluteLocation.toOSString() + ".bak"))) { // $NON-NLS-1$
          file.delete();
        }
      }
    }
  }
    /*
     * (non-Javadoc)
     * @see org.eclipse.core.resources.ISaveParticipant#saving(org.eclipse.core.resources.ISaveContext)
     */
    public void saving(ISaveContext context) throws CoreException {
      int saveNum = context.getSaveNumber();
      IPath savePath =
          new Path(SiteConnectionManager.STATE_FILENAME)
              .addFileExtension(Integer.toString(saveNum));
      SiteConnectionManager.getInstance().saveState(getStateLocation().append(savePath));
      context.map(new Path(SiteConnectionManager.STATE_FILENAME), savePath);

      savePath =
          new Path(DefaultSiteConnection.STATE_FILENAME)
              .addFileExtension(Integer.toString(saveNum));
      DefaultSiteConnection.getInstance().saveState(getStateLocation().append(savePath));
      context.map(new Path(DefaultSiteConnection.STATE_FILENAME), savePath);

      context.needSaveNumber();
    }
 /**
  * Returns the site Connection Manager instance
  *
  * @return
  */
 public static ISiteConnectionManager getSiteConnectionManager() {
   return SiteConnectionManager.getInstance();
 }