Package org.aspectj.ajde.ui.swing

Source Code of org.aspectj.ajde.ui.swing.AjdeUIManager

/* *******************************************************************
* Copyright (c) 1999-2001 Xerox Corporation,
*               2002 Palo Alto Research Center, Incorporated (PARC).
* All rights reserved.
* This program and the accompanying materials are made available
* under the terms of the Common Public License v1.0
* which accompanies this distribution and is available at
* http://www.eclipse.org/legal/cpl-v10.html
* Contributors:
*     Xerox/PARC     initial implementation
* ******************************************************************/


package org.aspectj.ajde.ui.swing;

import java.awt.Frame;

import org.aspectj.ajde.Ajde;
import org.aspectj.ajde.BuildListener;
import org.aspectj.ajde.BuildProgressMonitor;
import org.aspectj.ajde.EditorAdapter;
import org.aspectj.ajde.ErrorHandler;
import org.aspectj.ajde.ProjectPropertiesAdapter;
import org.aspectj.ajde.TaskListManager;
import org.aspectj.ajde.ui.FileStructureView;
import org.aspectj.ajde.ui.IdeUIAdapter;
import org.aspectj.ajde.ui.UserPreferencesAdapter;
import org.aspectj.ajde.ui.internal.AjcBuildOptions;

/**
* @author  Mik Kersten
*/
public class AjdeUIManager {

  protected static final AjdeUIManager INSTANCE = new AjdeUIManager();
  private BrowserViewManager viewManager = null;
//  private BuildProgressMonitor buildProgressMonitor = null;
//  private ErrorHandler errorHandler = null;
//  private UserPreferencesAdapter userPreferencesAdapter = null;
  private AjcBuildOptions buildOptionsAdapter = null;
  private IdeUIAdapter ideUIAdapter = null;
  private TreeViewBuildConfigEditor buildConfigEditor = null;
  private IconRegistry iconRegistry;
  private boolean initialized = false;
 
  private OptionsFrame optionsFrame = null;
  private Frame rootFrame = null;
  private StructureViewPanel fileStructurePanel = null;

  public void init(
    EditorAdapter editorAdapter,
    TaskListManager taskListManager,
    ProjectPropertiesAdapter projectProperties,
    UserPreferencesAdapter userPreferencesAdapter,
    IdeUIAdapter ideUIAdapter,
    IconRegistry iconRegistry,
    Frame rootFrame,
    boolean useFileView) {
     
    init(editorAdapter,
      taskListManager,
      projectProperties,
      userPreferencesAdapter,
      ideUIAdapter,
      iconRegistry,
      rootFrame,
      new DefaultBuildProgressMonitor(rootFrame),
      new AjdeErrorHandler(),
      useFileView);
  }

  /**
   * Order of initialization is critical here.
   */
  public void init(
    EditorAdapter editorAdapter,
    TaskListManager taskListManager,
    ProjectPropertiesAdapter projectProperties,
    UserPreferencesAdapter userPreferencesAdapter,
    IdeUIAdapter ideUIAdapter,
    IconRegistry iconRegistry,
    Frame rootFrame,
    BuildProgressMonitor progressMonitor,
    ErrorHandler errorHandler,
    boolean useFileView) {
    try
      this.iconRegistry = iconRegistry;
      //ConfigurationManager configManager = new LstConfigurationManager();
      this.ideUIAdapter = ideUIAdapter;
//      this.userPreferencesAdapter = userPreferencesAdapter;
      this.buildOptionsAdapter = new AjcBuildOptions(userPreferencesAdapter);
      this.buildConfigEditor = new TreeViewBuildConfigEditor();
      this.rootFrame = rootFrame;
      Ajde.init(
        editorAdapter,
        taskListManager,
        progressMonitor,
        projectProperties,
        buildOptionsAdapter,
        new SwingTreeViewNodeFactory(iconRegistry),
        ideUIAdapter,
        errorHandler);
     
      Ajde.getDefault().getBuildManager().addListener(STATUS_TEXT_UPDATER);
      //Ajde.getDefault().setConfigurationManager(configManager); 
     
      if (useFileView) {
        FileStructureView structureView = Ajde.getDefault().getStructureViewManager().createViewForSourceFile(
            Ajde.getDefault().getEditorAdapter().getCurrFile(),
            Ajde.getDefault().getStructureViewManager().getDefaultViewProperties()
          );
          Ajde.getDefault().getStructureViewManager().setDefaultFileView(structureView);     
        fileStructurePanel = new StructureViewPanel(structureView);
      }
     
      viewManager = new BrowserViewManager();
      optionsFrame = new OptionsFrame(iconRegistry);
     
     
      //Ajde.getDefault().getStructureViewManager().refreshView(
      //  Ajde.getDefault().getStructureViewManager().getDefaultFileStructureView()
      //);
     
      //viewManager.updateView();
      initialized = true;
    } catch (Throwable t) {
      Ajde.getDefault().getErrorHandler().handleError("AJDE failed to initialize.", t);
    }
  }

  public static AjdeUIManager getDefault() {
    return INSTANCE; 
  }

  public BrowserViewManager getViewManager() {
    return viewManager; 
  }

  public Frame getRootFrame() {
    return rootFrame; 
  }

  public OptionsFrame getOptionsFrame() {
    return optionsFrame; 
  }

  public void showOptionsFrame() {
    int x = (rootFrame.getWidth()/2) + rootFrame.getX() - optionsFrame.getWidth()/2;
    int y = (rootFrame.getHeight()/2) + rootFrame.getY() - optionsFrame.getHeight()/2;
    optionsFrame.setLocation(x, y);
    optionsFrame.setVisible(true);
  }
 
  public AjcBuildOptions getBuildOptions() {
    return buildOptionsAdapter;
  }
 
  private final BuildListener STATUS_TEXT_UPDATER = new BuildListener() {
   
    public void compileStarted(String buildConfigFile) {
      ideUIAdapter.displayStatusInformation(" Building: " + buildConfigFile + "...");
    }
   
        public void compileFinished(String buildConfigFile, int buildTime, boolean succeeded, boolean warnings) {
            int timeInSeconds = buildTime/1000;
            if (succeeded) {
                ideUIAdapter.displayStatusInformation(" Build succeeded in " + timeInSeconds + " second(s).");
                //hideMessages();
            } else {
                ideUIAdapter.displayStatusInformation(" Build failed in " + timeInSeconds + " second(s)");
                //showMessages();
            }
        }
       
        public void compileAborted(String buildConfigFile, String message) {
          ideUIAdapter.displayStatusInformation("Compile aborted: " + message);
        }
    };

  public IdeUIAdapter getIdeUIAdapter() {
    return ideUIAdapter;
  }

  public TreeViewBuildConfigEditor getBuildConfigEditor() {
    return buildConfigEditor;
  }

  public StructureViewPanel getFileStructurePanel() {
    return fileStructurePanel;
  }
 
  public IconRegistry getIconRegistry() {
    return iconRegistry;
  }
  public boolean isInitialized() {
    return initialized;
  }

}

//public abstract class AjdeAction {
//  public abstract void actionPerformed(ActionEvent e);
//
//    public abstract String getName();
//
//    public abstract ImageIcon getIcon();
//}

TOP

Related Classes of org.aspectj.ajde.ui.swing.AjdeUIManager

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.