Package org.aspectj.ajde.ui.swing

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

/* *******************************************************************
* 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);
  }
}
TOP

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

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.