Logo Search packages:      
Sourcecode: aspectj version File versions  Download package

SimpleStructureViewToolPanel.java

/* *******************************************************************
 * 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 Eclipse Public License v1.0 
 * which accompanies this distribution and is available at 
 * http://www.eclipse.org/legal/epl-v10.html 
 *  
 * Contributors: 
 *     Xerox/PARC     initial implementation
 *     Helen Hawkins  Converted to new interface (bug 148190)  
 * ******************************************************************/

package org.aspectj.ajde.ui.swing;

import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Dimension;
import java.awt.SystemColor;
import java.awt.event.ActionEvent;
import java.io.File;
import java.util.ArrayList;

import javax.swing.BorderFactory;
import javax.swing.JButton;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.border.BevelBorder;
import javax.swing.border.Border;

import org.aspectj.ajde.Ajde;
import org.aspectj.ajde.ui.StructureView;
import org.aspectj.ajde.ui.StructureViewProperties;
import org.aspectj.asm.IHierarchy;
import org.aspectj.asm.IHierarchyListener;
import org.aspectj.asm.IProgramElement;
import org.aspectj.bridge.IMessage;
import org.aspectj.bridge.Message;

public class SimpleStructureViewToolPanel extends JPanel {

      private static final long serialVersionUID = -7573973278642540506L;
      private final StructureView currentView;
      private final JButton separator_button = new JButton();
      private boolean hideNonAJEnabled = false;
      private boolean hideAssociationsEnabled = false;
      private boolean sortEnabled = false;

      Border border1;
      Border border2;
      JButton structureView_button = new JButton();
      JPanel label_panel = new JPanel();
      JLabel currConfig_field = new JLabel();
      JPanel spacer_panel = new JPanel();
      JPanel jPanel2 = new JPanel();
      JButton forward_button = new JButton();
      JPanel navigation_panel = new JPanel();
      JButton back_button = new JButton();
      BorderLayout borderLayout1 = new BorderLayout();
      JPanel buttons_panel = new JPanel();
      BorderLayout borderLayout2 = new BorderLayout();
      BorderLayout borderLayout3 = new BorderLayout();
      BorderLayout borderLayout4 = new BorderLayout();

      public final IHierarchyListener MODEL_LISTENER = new IHierarchyListener() {
            public void elementsUpdated(IHierarchy model) {
                  String path = Ajde.getDefault().getBuildConfigManager().getActiveConfigFile();
                  String fileName = "<no active config>";
                  if (path != null)
                        fileName = new File(path).getName();
                  updateCurrConfigLabel(fileName);
            }
      };

      JButton hideNonAJ_button = new JButton();
      JPanel navigation_panel1 = new JPanel();
      JButton hideAssociations_button = new JButton();
      BorderLayout borderLayout5 = new BorderLayout();
      JButton sort_button = new JButton();

      public SimpleStructureViewToolPanel(StructureView currentView) {
            this.currentView = currentView;
            Ajde.getDefault().getModel().addListener(MODEL_LISTENER);
            try {
                  jbInit();
            } catch (Exception e) {
                  Message msg = new Message("Could not initialize GUI.", IMessage.ERROR, e, null);
                  Ajde.getDefault().getMessageHandler().handleMessage(msg);
            }
            updateCurrConfigLabel("<no active config>");
      }

      private void updateCurrConfigLabel(String text) {
            currConfig_field.setText("  File View (" + text + ")");
      }

      private void jbInit() throws Exception {
            border1 = BorderFactory.createBevelBorder(BevelBorder.LOWERED, Color.white, Color.white, new Color(156, 156, 158),
                        new Color(109, 109, 110));
            border2 = BorderFactory.createEmptyBorder(0, 1, 0, 0);

            separator_button.setPreferredSize(new Dimension(2, 16));
            separator_button.setMinimumSize(new Dimension(2, 16));
            separator_button.setEnabled(false);
            separator_button.setBorder(AjdeWidgetStyles.DEFAULT_BORDER);
            separator_button.setMaximumSize(new Dimension(2, 16));

            structureView_button.addActionListener(new java.awt.event.ActionListener() {
                  public void actionPerformed(ActionEvent e) {
                        structureView_button_actionPerformed(e);
                  }
            });
            structureView_button.setIcon(Ajde.getDefault().getIconRegistry().getStructureViewIcon());
            structureView_button.setBorder(border2);
            structureView_button.setToolTipText("Navigate back");
            structureView_button.setPreferredSize(new Dimension(20, 20));
            structureView_button.setMinimumSize(new Dimension(20, 20));
            structureView_button.setMaximumSize(new Dimension(24, 20));
            currConfig_field.setBackground(SystemColor.control);
            currConfig_field.setFont(new java.awt.Font("SansSerif", 0, 11));
            currConfig_field.setBorder(AjdeWidgetStyles.DEFAULT_BORDER);
            // currConfig_field.setEditable(false);
            currConfig_field.setText("     ");

            forward_button.addActionListener(new java.awt.event.ActionListener() {
                  public void actionPerformed(ActionEvent e) {
                        forward_button_actionPerformed(e);
                  }
            });
            forward_button.setIcon(Ajde.getDefault().getIconRegistry().getForwardIcon());
            forward_button.setToolTipText("Navigate forward");
            forward_button.setPreferredSize(new Dimension(20, 20));
            forward_button.setMinimumSize(new Dimension(20, 20));
            forward_button.setMaximumSize(new Dimension(24, 20));
            forward_button.setBorder(AjdeWidgetStyles.DEFAULT_BORDER);
            navigation_panel.setLayout(borderLayout1);
            back_button.setMaximumSize(new Dimension(24, 20));
            back_button.setMinimumSize(new Dimension(20, 20));
            back_button.setPreferredSize(new Dimension(20, 20));
            back_button.setToolTipText("Navigate back");
            back_button.setIcon(Ajde.getDefault().getIconRegistry().getBackIcon());
            back_button.addActionListener(new java.awt.event.ActionListener() {
                  public void actionPerformed(ActionEvent e) {
                        back_button_actionPerformed(e);
                  }
            });
            back_button.setBorder(AjdeWidgetStyles.DEFAULT_BORDER);
            this.setLayout(borderLayout2);
            buttons_panel.setLayout(borderLayout3);
            label_panel.setLayout(borderLayout4);
            hideNonAJ_button.setBorder(AjdeWidgetStyles.DEFAULT_BORDER);
            hideNonAJ_button.setMaximumSize(new Dimension(24, 20));
            hideNonAJ_button.setMinimumSize(new Dimension(20, 20));
            hideNonAJ_button.setPreferredSize(new Dimension(20, 20));
            hideNonAJ_button.setToolTipText("Hide non-AspectJ members");
            hideNonAJ_button.setIcon(Ajde.getDefault().getIconRegistry().getHideNonAJIcon());
            hideNonAJ_button.addActionListener(new java.awt.event.ActionListener() {
                  public void actionPerformed(ActionEvent e) {
                        hideNonAJ_button_actionPerformed(e);
                  }
            });
            navigation_panel1.setLayout(borderLayout5);
            hideAssociations_button.setMaximumSize(new Dimension(24, 20));
            hideAssociations_button.setMinimumSize(new Dimension(20, 20));
            hideAssociations_button.setPreferredSize(new Dimension(20, 20));
            hideAssociations_button.setToolTipText("Hide associations");
            hideAssociations_button.setIcon(Ajde.getDefault().getIconRegistry().getHideAssociationsIcon());
            hideAssociations_button.addActionListener(new java.awt.event.ActionListener() {
                  public void actionPerformed(ActionEvent e) {
                        hideAssociations_button_actionPerformed(e);
                  }
            });
            hideAssociations_button.setBorder(AjdeWidgetStyles.DEFAULT_BORDER);
            sort_button.setBorder(AjdeWidgetStyles.DEFAULT_BORDER);
            sort_button.addActionListener(new java.awt.event.ActionListener() {
                  public void actionPerformed(ActionEvent e) {
                        sort_button_actionPerformed(e);
                  }
            });
            sort_button.setIcon(Ajde.getDefault().getIconRegistry().getOrderIcon());
            sort_button.setToolTipText("Sort member");
            sort_button.setPreferredSize(new Dimension(20, 20));
            sort_button.setMinimumSize(new Dimension(20, 20));
            sort_button.setMaximumSize(new Dimension(24, 20));
            label_panel.add(currConfig_field, BorderLayout.CENTER);
            // label_panel.add(structureView_button, BorderLayout.WEST);
            this.add(spacer_panel, BorderLayout.CENTER);
            this.add(buttons_panel, BorderLayout.EAST);
            buttons_panel.add(navigation_panel, BorderLayout.CENTER);
            navigation_panel.add(back_button, BorderLayout.CENTER);
            navigation_panel.add(forward_button, BorderLayout.EAST);
            navigation_panel.add(jPanel2, BorderLayout.WEST);
            buttons_panel.add(navigation_panel1, BorderLayout.WEST);
            navigation_panel1.add(hideAssociations_button, BorderLayout.EAST);
            navigation_panel1.add(hideNonAJ_button, BorderLayout.CENTER);
            navigation_panel1.add(sort_button, BorderLayout.WEST);
            this.add(label_panel, BorderLayout.WEST);

      }

      private void forward_button_actionPerformed(ActionEvent e) {
            Ajde.getDefault().getStructureViewManager().fireNavigateForwardAction(currentView);
      }

      private void back_button_actionPerformed(ActionEvent e) {
            Ajde.getDefault().getStructureViewManager().fireNavigateBackAction(currentView);
      }

      void structureView_button_actionPerformed(ActionEvent e) {

      }

      private void hideNonAJ_button_actionPerformed(ActionEvent e) {
            if (hideNonAJEnabled) {
                  hideNonAJ_button.setBorder(AjdeWidgetStyles.DEFAULT_BORDER);
                  hideNonAJEnabled = false;
                  currentView.getViewProperties().setFilteredMemberKinds(new ArrayList());
            } else {
                  hideNonAJ_button.setBorder(AjdeWidgetStyles.LOWERED_BEVEL_BORDER);
                  hideNonAJEnabled = true;
                  currentView.getViewProperties().setFilteredMemberKinds(IProgramElement.Kind.getNonAJMemberKinds());
            }
            Ajde.getDefault().getStructureViewManager().refreshView(currentView);
      }

      private void hideAssociations_button_actionPerformed(ActionEvent e) {
            if (hideAssociationsEnabled) {
                  hideAssociations_button.setBorder(AjdeWidgetStyles.DEFAULT_BORDER);
                  hideAssociationsEnabled = false;
                  currentView.getViewProperties().setRelations(Ajde.getDefault().getStructureViewManager().getAvailableRelations());
            } else {
                  hideAssociations_button.setBorder(AjdeWidgetStyles.LOWERED_BEVEL_BORDER);
                  hideAssociationsEnabled = true;
                  currentView.getViewProperties().setRelations(new ArrayList());
            }
            Ajde.getDefault().getStructureViewManager().refreshView(currentView);
      }

      private void sort_button_actionPerformed(ActionEvent e) {
            if (sortEnabled) {
                  sort_button.setBorder(AjdeWidgetStyles.DEFAULT_BORDER);
                  sortEnabled = false;
                  currentView.getViewProperties().setSorting(StructureViewProperties.Sorting.DECLARATIONAL);
            } else {
                  sort_button.setBorder(AjdeWidgetStyles.LOWERED_BEVEL_BORDER);
                  sortEnabled = true;
                  currentView.getViewProperties().setSorting(StructureViewProperties.Sorting.ALPHABETICAL);
            }
            Ajde.getDefault().getStructureViewManager().refreshView(currentView);
      }
}

Generated by  Doxygen 1.6.0   Back to index