All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.fudaa.ebli.graphe.EbliFilleGrapheController Maven / Gradle / Ivy

The newest version!
/*
 *  @creation     12 d?c. 2003
 *  @modification $Date: 2006-09-19 14:55:45 $
 *  @license      GNU General Public License 2
 *  @copyright    (c)1998-2001 CETMEF 2 bd Gambetta F-60231 Compiegne
 *  @mail         [email protected]
 */
package org.fudaa.ebli.graphe;

import java.awt.Dimension;
import java.awt.Graphics;
import java.awt.event.ActionEvent;
import java.awt.print.PageFormat;
import java.text.DecimalFormat;

import javax.swing.Action;
import javax.swing.BorderFactory;
import javax.swing.JComponent;
import javax.swing.KeyStroke;

import com.memoire.bu.BuBorderLayout;
import com.memoire.bu.BuCommonInterface;
import com.memoire.bu.BuInformationsDocument;
import com.memoire.bu.BuPanel;
import com.memoire.bu.BuSplit2Pane;

import org.fudaa.ebli.commun.EbliActionInterface;
import org.fudaa.ebli.commun.EbliActionSimple;
import org.fudaa.ebli.commun.EbliComponentFactory;
import org.fudaa.ebli.impression.EbliFilleImprimable;
import org.fudaa.ebli.ressource.EbliResource;

/**
 * @author deniger
 * @version $Id: EbliFilleGrapheController.java,v 1.7 2006-09-19 14:55:45 deniger Exp $
 */
public class EbliFilleGrapheController extends EbliFilleImprimable {

  protected BGrapheController controller_;
  EbliActionInterface restoreAction_;
  JComponent[] specificTools_;

  /**
   *
   */
  public EbliFilleGrapheController() {
    this(true, true);
  }

  public EbliFilleGrapheController(final boolean _legend, final boolean _copyright) {
    super();
    controller_= new BGrapheController(_legend, _copyright);
    init();
  }

  /**
   * @param _titre
   * @param _re
   * @param _clo
   * @param _max
   * @param _ico
   */
  public EbliFilleGrapheController(
    final String _titre,
    final boolean _re,
    final boolean _clo,
    final boolean _max,
    final boolean _ico) {
    this(true, true, _titre, _re, _clo, _max, _ico);
  }

  public EbliFilleGrapheController(
    final boolean _legend,
    final boolean _copyright,
    final String _titre,
    final boolean _re,
    final boolean _clo,
    final boolean _max,
    final boolean _ico) {
    super(_titre, _re, _clo, _max, _ico);
    controller_= new BGrapheController(_legend, _copyright);
    init();
  }

  public EbliFilleGrapheController(
    final String _titre,
    final boolean _re,
    final boolean _clo,
    final boolean _max,
    final boolean _ico,
    final BuCommonInterface _appli,
    final BuInformationsDocument _id) {
    this(true, true, _titre, _re, _clo, _max, _ico, _appli, _id);
  }

  /**
   * @param _titre
   * @param _re
   * @param _clo
   * @param _max
   * @param _ico
   * @param _appli
   * @param _id
   */
  public EbliFilleGrapheController(
    final boolean _legend,
    final boolean _copyright,
    final String _titre,
    final boolean _re,
    final boolean _clo,
    final boolean _max,
    final boolean _ico,
    final BuCommonInterface _appli,
    final BuInformationsDocument _id) {
    super(_titre, _re, _clo, _max, _ico, _appli, _id);
    controller_= new BGrapheController(_legend, _copyright);
    init();
  }

  private void init() {
    final BuSplit2Pane split2pane= new BuSplit2Pane();
    split2pane.setOneTouchExpandable(true);
    final JComponent left= new BGrapheComponentListPanel(controller_);
    split2pane.setLeftComponent(left);
    left.setPreferredSize(new Dimension(100, 300));
    final BuPanel middle= new BuPanel();
    middle.setLayout(new BuBorderLayout());
    middle.setBorder(
        BorderFactory.createEtchedBorder());
    middle.add(controller_.createGrapheComponent());
    middle.setPreferredSize(new Dimension(500, 500));
    split2pane.setMiddleComponent(middle);
    split2pane.resetToPreferredSizes();
    final BuPanel container=new BuPanel();
    container.setLayout(new BuBorderLayout(5,5));
    container.add(split2pane,BuBorderLayout.CENTER);
    final GrapheInteractionSuiviSouris inter=controller_.activeSuiviSouris();
    inter.setFormat(new DecimalFormat("0.00"));
    container.add(inter.getLabel(),BuBorderLayout.SOUTH);
    container.setBorder(BorderFactory.createEmptyBorder(10,10,10,10));
    container.doLayout();
    setContentPane(container);

  }

  public EbliActionInterface getRestaurerAction() {
    if (restoreAction_ == null) {
      restoreAction_=
        new EbliActionSimple(
          EbliResource.EBLI.getString("Restaurer"),
          EbliResource.EBLI.getIcon("loupe-etendue"),
          "RESTORE") {
        @Override
        public void actionPerformed(final ActionEvent _evt) {
          controller_.restaurer();
        }
      };
      restoreAction_.putValue(
        Action.SHORT_DESCRIPTION,
        EbliResource.EBLI.getString("Restaurer la vue globale"));
      restoreAction_.putValue(
        Action.ACCELERATOR_KEY,
        KeyStroke.getKeyStroke('r'));
    }
    return restoreAction_;
  }

  /**
   *
   */
  @Override
  public int print(final Graphics _g, final PageFormat _format, final int _page) {
    return controller_.print(_g, _format, _page);
  }

  /**
   *
   */
  @Override
  public int getNumberOfPages() {
    return 1;
  }

  /**
   *
   */
  @Override
  public JComponent[] getSpecificTools() {
    if (specificTools_ == null) {
      specificTools_= new JComponent[2];
      specificTools_[0]=
        getRestaurerAction().buildToolButton(EbliComponentFactory.INSTANCE);
      specificTools_[1]=
        controller_.createChangeCouleurAction().buildToolButton(
          EbliComponentFactory.INSTANCE);
    }
    return specificTools_;
  }

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy