From bbd832b4800bc0d7c54d65b2d9d690316e97c6a6 Mon Sep 17 00:00:00 2001 From: mkersten Date: Fri, 25 Jul 2003 15:07:57 +0000 Subject: [PATCH] Fix for bug#40771 De-coupled AJDE APIs from javax.swing, and moved browser-specific funtionality into the the ajbrowser module. --- .../aspectj/tools/ajbrowser}/BasicEditor.java | 4 +- .../tools/ajbrowser/BrowserManager.java | 59 +++++++++++++------ .../ajbrowser}/BuildConfigPopupMenu.java | 4 +- .../ajbrowser/CompilerMessagesPanel.java | 2 +- .../tools/ajbrowser}/EditorManager.java | 19 ++---- .../org/aspectj/tools/ajbrowser/TopFrame.java | 27 ++------- ajde/ajsrc/org/aspectj/ajde/AjdeApiRules.aj | 24 ++++++++ ajde/src/org/aspectj/ajde/Ajde.java | 26 +++++--- .../aspectj/ajde/ui/StructureModelUtil.java | 2 +- .../aspectj/ajde/ui/StructureViewManager.java | 19 +++--- .../aspectj/ajde/ui/swing/AjdeUIManager.java | 29 +-------- .../ajde/ui/swing/BrowserViewManager.java | 33 +---------- .../ui/swing/BrowserViewTreeListener.java | 19 ++++++ .../aspectj/ajde/ui/swing/PointcutWizard.java | 45 ++++++-------- .../ajde/ui/swing/StructureViewPanel.java | 2 +- ajde/testsrc/AjdeModuleTests.java | 2 +- .../aspectj/ajde/CompilerMessagesTest.java | 1 - .../aspectj/ajde/NullIdeEditorAdapter.java | 58 ++++++++++++++++++ .../org/aspectj/ajde/NullIdeManager.java | 5 +- 19 files changed, 216 insertions(+), 164 deletions(-) rename {ajde/src/org/aspectj/ajde/ui/swing => ajbrowser/src/org/aspectj/tools/ajbrowser}/BasicEditor.java (98%) rename {ajde/src/org/aspectj/ajde/ui/swing => ajbrowser/src/org/aspectj/tools/ajbrowser}/BuildConfigPopupMenu.java (96%) rename {ajde/src/org/aspectj/ajde/ui => ajbrowser/src/org/aspectj/tools/ajbrowser}/EditorManager.java (93%) create mode 100644 ajde/ajsrc/org/aspectj/ajde/AjdeApiRules.aj create mode 100644 ajde/testsrc/org/aspectj/ajde/NullIdeEditorAdapter.java diff --git a/ajde/src/org/aspectj/ajde/ui/swing/BasicEditor.java b/ajbrowser/src/org/aspectj/tools/ajbrowser/BasicEditor.java similarity index 98% rename from ajde/src/org/aspectj/ajde/ui/swing/BasicEditor.java rename to ajbrowser/src/org/aspectj/tools/ajbrowser/BasicEditor.java index 7d0a46959..8913b2109 100644 --- a/ajde/src/org/aspectj/ajde/ui/swing/BasicEditor.java +++ b/ajbrowser/src/org/aspectj/tools/ajbrowser/BasicEditor.java @@ -12,7 +12,7 @@ * ******************************************************************/ -package org.aspectj.ajde.ui.swing; +package org.aspectj.tools.ajbrowser; import java.awt.BorderLayout; import java.awt.Font; @@ -107,7 +107,7 @@ public class BasicEditor implements EditorAdapter { } catch (BadLocationException ble) { Ajde.getDefault().getErrorHandler().handleError("Could not highlight location.", ble); } - Ajde.getDefault().getEditorManager().notifyCurrentFileChanged(filePath); + BrowserManager.getDefault().getEditorManager().notifyCurrentFileChanged(filePath); } /** diff --git a/ajbrowser/src/org/aspectj/tools/ajbrowser/BrowserManager.java b/ajbrowser/src/org/aspectj/tools/ajbrowser/BrowserManager.java index ac8d41c19..5f6f9e6e8 100644 --- a/ajbrowser/src/org/aspectj/tools/ajbrowser/BrowserManager.java +++ b/ajbrowser/src/org/aspectj/tools/ajbrowser/BrowserManager.java @@ -15,22 +15,15 @@ package org.aspectj.tools.ajbrowser; import java.io.IOException; -import java.util.ArrayList; -import java.util.List; +import java.util.*; import javax.swing.JFrame; -import org.aspectj.ajde.Ajde; -import org.aspectj.ajde.BuildConfigManager; -import org.aspectj.ajde.BuildListener; -import org.aspectj.ajde.TaskListManager; -import org.aspectj.ajde.ui.InvalidResourceException; -import org.aspectj.ajde.ui.UserPreferencesAdapter; +import org.aspectj.ajde.*; +import org.aspectj.ajde.ui.*; import org.aspectj.ajde.ui.internal.UserPreferencesStore; -import org.aspectj.ajde.ui.swing.AjdeUIManager; -import org.aspectj.ajde.ui.swing.BasicEditor; -import org.aspectj.ajde.ui.swing.IconRegistry; -import org.aspectj.ajde.ui.swing.MultiStructureViewPanel; +import org.aspectj.ajde.ui.swing.*; +import org.aspectj.asm.*; /** * IDE manager for standalone AJDE application. @@ -41,6 +34,8 @@ public class BrowserManager { private static final BrowserManager INSTANCE = new BrowserManager(); private BrowserProperties browserProjectProperties; + private EditorManager editorManager; + private StructureViewPanel fileStructurePanel = null; public static BrowserManager getDefault() { return INSTANCE; @@ -52,6 +47,15 @@ public class BrowserManager { private static TopFrame topFrame = null; + public final StructureModelListener VIEW_LISTENER = new StructureModelListener() { + public void modelUpdated(StructureModel model) { + FileStructureView fsv = Ajde.getDefault().getStructureViewManager().getDefaultFileView(); + if (fsv != null) { + fsv.setSourceFile(BrowserManager.getDefault().getEditorManager().getCurrFile()); + } + } + }; + public void init(String[] configFilesArgs, boolean visible) { try { UserPreferencesAdapter preferencesAdapter = new UserPreferencesStore(true); @@ -69,20 +73,28 @@ public class BrowserManager { preferencesAdapter, browserUIAdapter, new IconRegistry(), - topFrame, - true); + topFrame); + + editorManager = new EditorManager(ajdeEditor); + + FileStructureView structureView = Ajde.getDefault().getStructureViewManager().createViewForSourceFile( + editorManager.getCurrFile(), + Ajde.getDefault().getStructureViewManager().getDefaultViewProperties() + ); + Ajde.getDefault().getStructureViewManager().setDefaultFileView(structureView); + fileStructurePanel = new StructureViewPanel(structureView); Ajde.getDefault().getBuildManager().addListener(BUILD_MESSAGES_LISTENER); MultiStructureViewPanel multiViewPanel = new MultiStructureViewPanel( AjdeUIManager.getDefault().getViewManager().getBrowserPanel(), - AjdeUIManager.getDefault().getFileStructurePanel() + fileStructurePanel ); topFrame.init( multiViewPanel, (CompilerMessagesPanel)taskListManager, - Ajde.getDefault().getEditorManager().getEditorPanel() + editorManager.getEditorPanel() ); if (visible) topFrame.setVisible(true); @@ -97,8 +109,10 @@ public class BrowserManager { AjdeUIManager.getDefault().getOptionsFrame().addOptionsPanel(new BrowserOptionsPanel()); + StructureModelManager.getDefault().addListener(VIEW_LISTENER); + //String lastOpenFilePath = browserProjectProperties.getLastOpenSourceFilePath(); - //Ajde.getDefault().getEditorManager().showSourceLine(lastOpenFilePath, 1, false); + //editorManager.showSourceLine(lastOpenFilePath, 1, false); //Ajde.getDefault().getStructureViewManager().fireNavigationAction(lastOpenFilePath, 6); //Ajde.getDefault().enableLogging(System.out); @@ -132,7 +146,7 @@ public class BrowserManager { } public void saveAll() { - Ajde.getDefault().getEditorManager().saveContents(); + editorManager.saveContents(); } public void showMessages() { @@ -153,7 +167,7 @@ public class BrowserManager { AjdeUIManager.getDefault().getBuildConfigEditor().openFile(filePath); topFrame.setEditorPanel(AjdeUIManager.getDefault().getBuildConfigEditor()); } else if (filePath.endsWith(".java") || filePath.endsWith(".aj")){ - Ajde.getDefault().getEditorManager().showSourceLine(filePath, 0, false); + editorManager.showSourceLine(filePath, 0, false); } else { Ajde.getDefault().getErrorHandler().handleError("File: " + filePath + " could not be opened because the extension was not recoginzed."); @@ -226,4 +240,11 @@ public class BrowserManager { public BrowserProperties getBrowserProjectProperties() { return browserProjectProperties; } + /** + * @return + */ + public EditorManager getEditorManager() { + return editorManager; + } + } diff --git a/ajde/src/org/aspectj/ajde/ui/swing/BuildConfigPopupMenu.java b/ajbrowser/src/org/aspectj/tools/ajbrowser/BuildConfigPopupMenu.java similarity index 96% rename from ajde/src/org/aspectj/ajde/ui/swing/BuildConfigPopupMenu.java rename to ajbrowser/src/org/aspectj/tools/ajbrowser/BuildConfigPopupMenu.java index 97904a5dc..8ca49e727 100644 --- a/ajde/src/org/aspectj/ajde/ui/swing/BuildConfigPopupMenu.java +++ b/ajbrowser/src/org/aspectj/tools/ajbrowser/BuildConfigPopupMenu.java @@ -12,7 +12,7 @@ * ******************************************************************/ -package org.aspectj.ajde.ui.swing; +package org.aspectj.tools.ajbrowser; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; @@ -24,7 +24,7 @@ import javax.swing.JMenuItem; import javax.swing.JPopupMenu; import org.aspectj.ajde.Ajde; -import org.aspectj.ajde.ui.EditorManager; +import org.aspectj.ajde.ui.swing.*; import org.aspectj.asm.ProgramElementNode; public class BuildConfigPopupMenu extends JPopupMenu { diff --git a/ajbrowser/src/org/aspectj/tools/ajbrowser/CompilerMessagesPanel.java b/ajbrowser/src/org/aspectj/tools/ajbrowser/CompilerMessagesPanel.java index 46a162c1e..e03885ef6 100644 --- a/ajbrowser/src/org/aspectj/tools/ajbrowser/CompilerMessagesPanel.java +++ b/ajbrowser/src/org/aspectj/tools/ajbrowser/CompilerMessagesPanel.java @@ -85,7 +85,7 @@ public class CompilerMessagesPanel extends JPanel implements TaskListManager { */ protected void displayMessage(IMessage message) { ISourceLocation loc = message.getISourceLocation(); - Ajde.getDefault().getEditorManager().showSourceLine(loc, true); + BrowserManager.getDefault().getEditorManager().showSourceLine(loc, true); // show dialog with stack trace if thrown Throwable thrown = message.getThrown(); if (null != thrown) { diff --git a/ajde/src/org/aspectj/ajde/ui/EditorManager.java b/ajbrowser/src/org/aspectj/tools/ajbrowser/EditorManager.java similarity index 93% rename from ajde/src/org/aspectj/ajde/ui/EditorManager.java rename to ajbrowser/src/org/aspectj/tools/ajbrowser/EditorManager.java index e47728dc7..1c09802c7 100644 --- a/ajde/src/org/aspectj/ajde/ui/EditorManager.java +++ b/ajbrowser/src/org/aspectj/tools/ajbrowser/EditorManager.java @@ -12,23 +12,16 @@ * ******************************************************************/ -package org.aspectj.ajde.ui; +package org.aspectj.tools.ajbrowser; import java.awt.BorderLayout; import java.awt.event.KeyEvent; import java.io.IOException; -import java.util.ArrayList; -import java.util.Iterator; -import java.util.Vector; - -import javax.swing.Box; -import javax.swing.JPanel; -import javax.swing.SwingUtilities; - -import org.aspectj.ajde.Ajde; -import org.aspectj.ajde.EditorAdapter; -import org.aspectj.ajde.EditorListener; -import org.aspectj.ajde.ui.swing.BasicEditor; +import java.util.*; + +import javax.swing.*; + +import org.aspectj.ajde.*; import org.aspectj.bridge.ISourceLocation; /** diff --git a/ajbrowser/src/org/aspectj/tools/ajbrowser/TopFrame.java b/ajbrowser/src/org/aspectj/tools/ajbrowser/TopFrame.java index 7e3afb82d..e97ae9dd1 100644 --- a/ajbrowser/src/org/aspectj/tools/ajbrowser/TopFrame.java +++ b/ajbrowser/src/org/aspectj/tools/ajbrowser/TopFrame.java @@ -14,26 +14,16 @@ package org.aspectj.tools.ajbrowser; -import java.awt.BorderLayout; -import java.awt.Color; -import java.awt.Dimension; -import java.awt.FlowLayout; -import java.awt.event.ActionEvent; -import java.awt.event.KeyEvent; -import java.awt.event.WindowEvent; +import java.awt.*; +import java.awt.event.*; import java.io.File; import javax.swing.*; -import javax.swing.border.BevelBorder; -import javax.swing.border.Border; +import javax.swing.border.*; import javax.swing.filechooser.FileFilter; import org.aspectj.ajde.Ajde; -import org.aspectj.ajde.ui.EditorManager; -import org.aspectj.ajde.ui.swing.AJButtonMenuCombo; -import org.aspectj.ajde.ui.swing.AjdeUIManager; -import org.aspectj.ajde.ui.swing.BuildConfigPopupMenu; -import org.aspectj.ajde.ui.swing.MultiStructureViewPanel; +import org.aspectj.ajde.ui.swing.*; import org.aspectj.asm.ProgramElementNode; /** @@ -465,7 +455,7 @@ public class TopFrame extends JFrame { void treeMode_comboBox_actionPerformed(ActionEvent e) { } void save_button_actionPerformed(ActionEvent e) { - Ajde.getDefault().getEditorManager().saveContents(); + BrowserManager.getDefault().getEditorManager().saveContents(); } @@ -483,13 +473,8 @@ public class TopFrame extends JFrame { messages_panel.setVisible(false); } - - void emacsTest_button_actionPerformed(ActionEvent e) { -// Tester.emacsCompile(TopManager.BROWSER_MANAGER.getCurrConfigFile()); - } - void jMenuItem1_actionPerformed(ActionEvent e) { - Ajde.getDefault().getEditorManager().saveContents(); + BrowserManager.getDefault().getEditorManager().saveContents(); } void projectBuild_menuItem_actionPerformed(ActionEvent e) { diff --git a/ajde/ajsrc/org/aspectj/ajde/AjdeApiRules.aj b/ajde/ajsrc/org/aspectj/ajde/AjdeApiRules.aj new file mode 100644 index 000000000..91f67ce8c --- /dev/null +++ b/ajde/ajsrc/org/aspectj/ajde/AjdeApiRules.aj @@ -0,0 +1,24 @@ +/* ******************************************************************* + * Copyright (c) 2002 Palo Alto Research Center, Incorporated (PARC), + * 2003 Contributors. + * 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 + * AMC 01.20.2003 extended to support new AspectJ 1.1 options, + * bugzilla #29769 + * ******************************************************************/ + +public aspect AjdeApiRules { + + + declare warning: + call(* javax.swing..*(..)) && !within(org.aspectj.ajde.ui.swing..*): + "do not use Swing outside of org.aspectj.ajde.swing"; + +} + \ No newline at end of file diff --git a/ajde/src/org/aspectj/ajde/Ajde.java b/ajde/src/org/aspectj/ajde/Ajde.java index b1a473d7e..f75e3de82 100644 --- a/ajde/src/org/aspectj/ajde/Ajde.java +++ b/ajde/src/org/aspectj/ajde/Ajde.java @@ -16,7 +16,6 @@ package org.aspectj.ajde; import org.aspectj.ajde.internal.AspectJBuildManager; import org.aspectj.ajde.internal.LstBuildConfigManager; -import org.aspectj.ajde.ui.EditorManager; import org.aspectj.ajde.ui.IdeUIAdapter; import org.aspectj.ajde.ui.StructureSearchManager; import org.aspectj.ajde.ui.StructureViewManager; @@ -36,14 +35,15 @@ import java.util.List; * * @author Mik Kersten */ -public class Ajde { +public class Ajde { private static final Ajde INSTANCE = new Ajde(); private static final String NOT_INITIALIZED_MESSAGE = "Ajde is not initialized."; private static boolean isInitialized = false; private BuildManager buildManager; - private EditorManager editorManager; +// private EditorManager editorManager; + private EditorAdapter editorAdapter; private StructureViewManager structureViewManager; private StructureSearchManager structureSearchManager; private BuildConfigManager configurationManager ; @@ -77,7 +77,8 @@ public class Ajde { INSTANCE.projectProperties = projectProperties; INSTANCE.errorHandler = errorHandler; INSTANCE.taskListManager = taskListManager; - INSTANCE.editorManager = new EditorManager(editorAdapter); +// INSTANCE.editorManager = new EditorManager(editorAdapter); + INSTANCE.editorAdapter = editorAdapter; INSTANCE.buildManager = new AspectJBuildManager( taskListManager, compileProgressMonitor, @@ -117,9 +118,13 @@ public class Ajde { return buildManager; } - public EditorManager getEditorManager() { - return editorManager; - } +// public EditorManager getEditorManager() { +// return editorManager; +// } + + public EditorAdapter getEditorAdapter() { + return editorAdapter; + } public StructureViewManager getStructureViewManager() { return structureViewManager; @@ -171,7 +176,7 @@ public class Ajde { * instead. */ public StructureModelManager getStructureModelManager() { - return StructureModelManager.INSTANCE; + return StructureModelManager.getDefault(); } public void logEvent(String message) { @@ -302,7 +307,7 @@ public class Ajde { public void compileFinished(String buildConfig, int buildTime, boolean succeeded, boolean warnings) { String configFilePath = projectProperties.getDefaultBuildConfigFile(); if (!succeeded) { - StructureModelManager.INSTANCE.fireModelUpdated(); + StructureModelManager.getDefault().fireModelUpdated(); } } @@ -355,6 +360,9 @@ public class Ajde { this.valid = valid; } } + + + } diff --git a/ajde/src/org/aspectj/ajde/ui/StructureModelUtil.java b/ajde/src/org/aspectj/ajde/ui/StructureModelUtil.java index 8415b6dfe..81d33f75c 100644 --- a/ajde/src/org/aspectj/ajde/ui/StructureModelUtil.java +++ b/ajde/src/org/aspectj/ajde/ui/StructureModelUtil.java @@ -52,7 +52,7 @@ public class StructureModelUtil { public static Map getLinesToAspectMap(String sourceFilePath) { Map annotationsMap = - StructureModelManager.INSTANCE.getInlineAnnotations( + StructureModelManager.getDefault().getInlineAnnotations( sourceFilePath, true, true); diff --git a/ajde/src/org/aspectj/ajde/ui/StructureViewManager.java b/ajde/src/org/aspectj/ajde/ui/StructureViewManager.java index a6a13a522..ad2be9c79 100644 --- a/ajde/src/org/aspectj/ajde/ui/StructureViewManager.java +++ b/ajde/src/org/aspectj/ajde/ui/StructureViewManager.java @@ -50,10 +50,10 @@ public class StructureViewManager { public final StructureModelListener VIEW_LISTENER = new StructureModelListener() { public void modelUpdated(StructureModel model) { Ajde.getDefault().logEvent("updating structure views: " + structureViews); - - if (defaultFileView != null) { - defaultFileView.setSourceFile(Ajde.getDefault().getEditorManager().getCurrFile()); - } +// +// if (defaultFileView != null) { +// defaultFileView.setSourceFile(Ajde.getDefault().getEditorManager().getCurrFile()); +// } for (Iterator it = structureViews.iterator(); it.hasNext(); ) { treeViewBuilder.buildView((StructureView)it.next(), (StructureModel)model); @@ -67,7 +67,7 @@ public class StructureViewManager { public StructureViewManager(StructureViewNodeFactory nodeFactory) { treeViewBuilder = new TreeStructureViewBuilder(nodeFactory); - StructureModelManager.INSTANCE.addListener(VIEW_LISTENER); + StructureModelManager.getDefault().addListener(VIEW_LISTENER); } public void fireNavigateBackAction(StructureView view) { @@ -138,7 +138,7 @@ public class StructureViewManager { if (defaultFileView.getSourceFile() != null && !defaultFileView.getSourceFile().equals(newFilePath)) { defaultFileView.setSourceFile(newFilePath); - treeViewBuilder.buildView(defaultFileView, StructureModelManager.INSTANCE.getStructureModel()); + treeViewBuilder.buildView(defaultFileView, StructureModelManager.getDefault().getStructureModel()); } } @@ -206,7 +206,7 @@ public class StructureViewManager { if (properties == null) properties = DEFAULT_VIEW_PROPERTIES; FileStructureView view = new FileStructureView(properties); view.setSourceFile(sourceFilePath); - treeViewBuilder.buildView(view, StructureModelManager.INSTANCE.getStructureModel()); + treeViewBuilder.buildView(view, StructureModelManager.getDefault().getStructureModel()); structureViews.add(view); return view; } @@ -222,6 +222,10 @@ public class StructureViewManager { this.defaultFileView = defaultFileView; } + public FileStructureView getDefaultFileView() { + return defaultFileView; + } + static { AVAILABLE_RELATIONS = new ArrayList(); AVAILABLE_RELATIONS.add(AdviceAssociation.METHOD_CALL_SITE_RELATION); @@ -242,6 +246,7 @@ public class StructureViewManager { DEFAULT_VIEW_PROPERTIES = new StructureViewProperties(); DEFAULT_VIEW_PROPERTIES.setRelations(AVAILABLE_RELATIONS); } + } // this.multiFileViewMode = multiFileViewMode; diff --git a/ajde/src/org/aspectj/ajde/ui/swing/AjdeUIManager.java b/ajde/src/org/aspectj/ajde/ui/swing/AjdeUIManager.java index 6fe610e00..f7228aea2 100644 --- a/ajde/src/org/aspectj/ajde/ui/swing/AjdeUIManager.java +++ b/ajde/src/org/aspectj/ajde/ui/swing/AjdeUIManager.java @@ -16,16 +16,8 @@ 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.*; +import org.aspectj.ajde.ui.*; import org.aspectj.ajde.ui.internal.AjcBuildOptions; /** @@ -45,7 +37,6 @@ public class AjdeUIManager { private OptionsFrame optionsFrame = null; private Frame rootFrame = null; - private StructureViewPanel fileStructurePanel = null; /** * Order of initialization is critical here. @@ -57,8 +48,7 @@ public class AjdeUIManager { UserPreferencesAdapter userPreferencesAdapter, IdeUIAdapter ideUIAdapter, IconRegistry iconRegistry, - Frame rootFrame, - boolean useFileView) { + Frame rootFrame) { try { BuildProgressMonitor compileProgress = new DefaultBuildProgressMonitor(rootFrame); ErrorHandler errorHandler = new AjdeErrorHandler(); @@ -82,15 +72,6 @@ public class AjdeUIManager { Ajde.getDefault().getBuildManager().addListener(STATUS_TEXT_UPDATER); //Ajde.getDefault().setConfigurationManager(configManager); - if (useFileView) { - FileStructureView structureView = Ajde.getDefault().getStructureViewManager().createViewForSourceFile( - Ajde.getDefault().getEditorManager().getCurrFile(), - Ajde.getDefault().getStructureViewManager().getDefaultViewProperties() - ); - Ajde.getDefault().getStructureViewManager().setDefaultFileView(structureView); - fileStructurePanel = new StructureViewPanel(structureView); - } - viewManager = new BrowserViewManager(); optionsFrame = new OptionsFrame(iconRegistry); @@ -161,10 +142,6 @@ public class AjdeUIManager { return buildConfigEditor; } - public StructureViewPanel getFileStructurePanel() { - return fileStructurePanel; - } - public IconRegistry getIconRegistry() { return iconRegistry; } diff --git a/ajde/src/org/aspectj/ajde/ui/swing/BrowserViewManager.java b/ajde/src/org/aspectj/ajde/ui/swing/BrowserViewManager.java index a1798c125..2e21a3631 100644 --- a/ajde/src/org/aspectj/ajde/ui/swing/BrowserViewManager.java +++ b/ajde/src/org/aspectj/ajde/ui/swing/BrowserViewManager.java @@ -14,20 +14,11 @@ package org.aspectj.ajde.ui.swing; -import java.util.ArrayList; -import java.util.Iterator; -import java.util.Stack; +import java.util.*; import org.aspectj.ajde.Ajde; -import org.aspectj.ajde.ui.GlobalStructureView; -import org.aspectj.ajde.ui.GlobalViewProperties; -import org.aspectj.ajde.ui.StructureViewProperties; -import org.aspectj.asm.AdviceAssociation; -import org.aspectj.asm.InheritanceAssociation; -import org.aspectj.asm.LinkNode; -import org.aspectj.asm.ProgramElementNode; -import org.aspectj.asm.StructureNode; -import org.aspectj.bridge.ISourceLocation; +import org.aspectj.ajde.ui.*; +import org.aspectj.asm.*; /** * Responsible for displaying and controlling the configuration and output of a @@ -66,24 +57,6 @@ public class BrowserViewManager { return browserPanel; } - public void showSourcesNodes(java.util.List nodes) { - for (Iterator it = nodes.iterator(); it.hasNext(); ) { - ProgramElementNode currNode = null; - StructureNode structureNode = (StructureNode)it.next(); - if (structureNode instanceof LinkNode) { - currNode = ((LinkNode)structureNode).getProgramElementNode(); - } else { - currNode = (ProgramElementNode)structureNode; - } - ISourceLocation sourceLoc = currNode.getSourceLocation(); - if (null != sourceLoc) { - Ajde.getDefault().getEditorManager().addViewForSourceLine( - sourceLoc.getSourceFile().getAbsolutePath(), - sourceLoc.getLine()); - } - } - } - public void extractAndInsertSignatures(java.util.List signatures, boolean calls) { PointcutWizard pointcutWizard = new PointcutWizard(signatures); pointcutWizard.setVisible(true); diff --git a/ajde/src/org/aspectj/ajde/ui/swing/BrowserViewTreeListener.java b/ajde/src/org/aspectj/ajde/ui/swing/BrowserViewTreeListener.java index 2dbc95fa4..814d48e04 100644 --- a/ajde/src/org/aspectj/ajde/ui/swing/BrowserViewTreeListener.java +++ b/ajde/src/org/aspectj/ajde/ui/swing/BrowserViewTreeListener.java @@ -119,6 +119,25 @@ class BrowserViewTreeListener implements TreeSelectionListener, MouseListener { showSourcesItem.addActionListener(new AbstractAction() { public void actionPerformed(ActionEvent e) { //AjdeUIManager.getDefault().getViewManager().showSourcesNodes(signatures); + // USED THE FOLLOWING FROM: BrowserViewManager: +// public void showSourcesNodes(java.util.List nodes) { +// for (Iterator it = nodes.iterator(); it.hasNext(); ) { +// ProgramElementNode currNode = null; +// StructureNode structureNode = (StructureNode)it.next(); +// if (structureNode instanceof LinkNode) { +// currNode = ((LinkNode)structureNode).getProgramElementNode(); +// } else { +// currNode = (ProgramElementNode)structureNode; +// } +// ISourceLocation sourceLoc = currNode.getSourceLocation(); +// if (null != sourceLoc) { +// Ajde.getDefault().getEditorManager().addViewForSourceLine( +// sourceLoc.getSourceFile().getAbsolutePath(), +// sourceLoc.getLine()); +// } +// } +// } + } }); popup.add(showSourcesItem); diff --git a/ajde/src/org/aspectj/ajde/ui/swing/PointcutWizard.java b/ajde/src/org/aspectj/ajde/ui/swing/PointcutWizard.java index 91d450ed1..045f361a3 100644 --- a/ajde/src/org/aspectj/ajde/ui/swing/PointcutWizard.java +++ b/ajde/src/org/aspectj/ajde/ui/swing/PointcutWizard.java @@ -14,26 +14,14 @@ package org.aspectj.ajde.ui.swing; -import java.awt.BorderLayout; -import java.awt.Dimension; +import java.awt.*; import java.awt.event.ActionEvent; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.Iterator; -import java.util.Map; +import java.util.*; -import javax.swing.ImageIcon; -import javax.swing.JButton; -import javax.swing.JCheckBox; -import javax.swing.JFrame; -import javax.swing.JLabel; -import javax.swing.JPanel; +import javax.swing.*; -import org.aspectj.ajde.Ajde; -import org.aspectj.ajde.ui.GlobalViewProperties; -import org.aspectj.ajde.ui.StructureViewProperties; +import org.aspectj.ajde.ui.*; import org.aspectj.asm.InheritanceAssociation; -import org.aspectj.asm.ProgramElementNode; /** * @author Mik Kersten @@ -65,15 +53,17 @@ class PointcutWizard extends JFrame { ArrayList views = new ArrayList(); views.add(StructureViewProperties.Hierarchy.INHERITANCE); typeTreeView = new BrowserViewPanel(AjdeUIManager.getDefault().getIconRegistry(), views, StructureViewProperties.Hierarchy.INHERITANCE); - typeTreeView.updateTree(Ajde.getDefault().getEditorManager().getCurrFile()); - try { - jbInit(); - } - catch(Exception e) { - Ajde.getDefault().getErrorHandler().handleError("Could not initialize GUI.", e); - } - this.setSize(400, 400); - this.setIconImage(((ImageIcon)AjdeUIManager.getDefault().getIconRegistry().getStructureSwingIcon(ProgramElementNode.Kind.POINTCUT)).getImage()); + + throw new RuntimeException("unimplemented, can't get the current file"); + //typeTreeView.updateTree(Ajde.getDefault().getEditorManager().getCurrFile()); +// try { +// jbInit(); +// } +// catch(Exception e) { +// Ajde.getDefault().getErrorHandler().handleError("Could not initialize GUI.", e); +// } +// this.setSize(400, 400); +// this.setIconImage(((ImageIcon)AjdeUIManager.getDefault().getIconRegistry().getStructureSwingIcon(ProgramElementNode.Kind.POINTCUT)).getImage()); } private Map getViewProperties() { @@ -143,8 +133,9 @@ class PointcutWizard extends JFrame { } private void ok_button_actionPerformed(ActionEvent e) { - Ajde.getDefault().getEditorManager().pasteToCaretPos(generatePcd()); - this.dispose(); + throw new RuntimeException("unimplemented, can't paste"); +// Ajde.getDefault().getEditorManager().pasteToCaretPos(generatePcd()); +// this.dispose(); } private void cancel_button_actionPerformed(ActionEvent e) { diff --git a/ajde/src/org/aspectj/ajde/ui/swing/StructureViewPanel.java b/ajde/src/org/aspectj/ajde/ui/swing/StructureViewPanel.java index 8bbb43fea..89ece89e3 100644 --- a/ajde/src/org/aspectj/ajde/ui/swing/StructureViewPanel.java +++ b/ajde/src/org/aspectj/ajde/ui/swing/StructureViewPanel.java @@ -102,7 +102,7 @@ public class StructureViewPanel extends JPanel implements StructureViewRenderer ProgramElementNode pNode = (ProgramElementNode)node.getStructureNode(); treeManager.highlightNode(pNode); if (pNode.getSourceLocation() != null) { - Ajde.getDefault().getEditorManager().showSourceLine( + Ajde.getDefault().getEditorAdapter().showSourceLine( pNode.getSourceLocation().getSourceFile().getAbsolutePath(), pNode.getSourceLocation().getLine() + lineOffset, true diff --git a/ajde/testsrc/AjdeModuleTests.java b/ajde/testsrc/AjdeModuleTests.java index c26330ed9..58d6c03d6 100644 --- a/ajde/testsrc/AjdeModuleTests.java +++ b/ajde/testsrc/AjdeModuleTests.java @@ -18,7 +18,7 @@ import junit.framework.*; public class AjdeModuleTests extends TestCase { - public static Test suite() { + public static TestSuite suite() { TestSuite suite = new TestSuite(AjdeModuleTests.class.getName()); suite.addTest(org.aspectj.ajde.AjdeTests.suite()); suite.addTest(org.aspectj.ajde.internal.AjdeInternalTests.suite()); diff --git a/ajde/testsrc/org/aspectj/ajde/CompilerMessagesTest.java b/ajde/testsrc/org/aspectj/ajde/CompilerMessagesTest.java index 178d92efe..0506eb36d 100644 --- a/ajde/testsrc/org/aspectj/ajde/CompilerMessagesTest.java +++ b/ajde/testsrc/org/aspectj/ajde/CompilerMessagesTest.java @@ -13,7 +13,6 @@ package org.aspectj.ajde; import java.io.IOException; -import java.util.Iterator; import java.util.List; /** diff --git a/ajde/testsrc/org/aspectj/ajde/NullIdeEditorAdapter.java b/ajde/testsrc/org/aspectj/ajde/NullIdeEditorAdapter.java new file mode 100644 index 000000000..2dc416748 --- /dev/null +++ b/ajde/testsrc/org/aspectj/ajde/NullIdeEditorAdapter.java @@ -0,0 +1,58 @@ +/* + * Created on Jul 25, 2003 + * + * To change the template for this generated file go to + * Window>Preferences>Java>Code Generation>Code and Comments + */ +package org.aspectj.ajde; + +import java.io.IOException; +import java.util.List; + +import org.aspectj.bridge.ISourceLocation; + +/** + * @author beatmik + * + * To change the template for this generated type comment go to + * Window>Preferences>Java>Code Generation>Code and Comments + */ +public class NullIdeEditorAdapter implements EditorAdapter { + + public void showSourceLine( + String filePath, + int lineNumber, + boolean highlight) { + + } + + public void showSourceLine( + ISourceLocation sourceLocation, + boolean highlight) { + + } + + public void showSourceLine(int lineNumber, boolean highlight) { + + } + + public String getCurrFile() { + return null; + } + + public void saveContents() throws IOException { + } + + public void pasteToCaretPos(String text) { + + } + + + public void showSourcelineAnnotation( + String filePath, + int lineNumber, + List items) { + + } + +} diff --git a/ajde/testsrc/org/aspectj/ajde/NullIdeManager.java b/ajde/testsrc/org/aspectj/ajde/NullIdeManager.java index 71a50575e..c659dd2c8 100644 --- a/ajde/testsrc/org/aspectj/ajde/NullIdeManager.java +++ b/ajde/testsrc/org/aspectj/ajde/NullIdeManager.java @@ -45,7 +45,7 @@ public class NullIdeManager { UserPreferencesAdapter preferencesAdapter = new UserPreferencesStore(false); ProjectPropertiesAdapter browserProjectProperties = new NullIdeProperties(testProjectPath); taskListManager = new NullIdeTaskListManager(); - BasicEditor ajdeEditor = new BasicEditor(); + EditorAdapter ajdeEditor = new NullIdeEditorAdapter(); IdeUIAdapter uiAdapter = new NullIdeUIAdapter(); JFrame nullFrame = new JFrame(); //configurationManager.setConfigFiles(getConfigFilesList(configFiles)); @@ -57,8 +57,7 @@ public class NullIdeManager { preferencesAdapter, uiAdapter, new IconRegistry(), - nullFrame, - true); + nullFrame); //Ajde.getDefault().enableLogging( System.out ); } catch (Throwable t) { -- 2.39.5