Package org.freeplane.view.swing.map

Source Code of org.freeplane.view.swing.map.ForkMainView

/*
*  Freeplane - mind map editor
*  Copyright (C) 2008 Joerg Mueller, Daniel Polansky, Christian Foltin, Dimitry Polivaev
*
*  This file is modified by Dimitry Polivaev in 2008.
*
*  This program is free software: you can redistribute it and/or modify
*  it under the terms of the GNU General Public License as published by
*  the Free Software Foundation, either version 2 of the License, or
*  (at your option) any later version.
*
*  This program is distributed in the hope that it will be useful,
*  but WITHOUT ANY WARRANTY; without even the implied warranty of
*  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
*  GNU General Public License for more details.
*
*  You should have received a copy of the GNU General Public License
*  along with this program.  If not, see <http://www.gnu.org/licenses/>.
*/
package org.freeplane.view.swing.map;

import java.awt.BasicStroke;
import java.awt.Color;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.Insets;
import java.awt.Point;
import java.awt.Stroke;

import org.freeplane.features.edge.EdgeStyle;
import org.freeplane.features.map.NodeModel;
import org.freeplane.features.nodestyle.NodeStyleModel;

class ForkMainView extends MainView {
 
  private static final long serialVersionUID = 1L;

  @Override
    public
  Point getLeftPoint() {
    int edgeWidth = getEdgeWidth();
    final Point in = new Point(0, getHeight() - edgeWidth / 2);
    return in;
  }

  public int getEdgeWidth() {
      final NodeView nodeView = getNodeView();
      final int edgeWidth = nodeView.getEdgeWidth();
    final EdgeStyle style = nodeView.getEdgeStyle();
    final int nodeLineWidth = style.getNodeLineWidth(edgeWidth);
    if(edgeWidth == 0)
      return nodeLineWidth;
    else{
      final int zoomedLineWidth = nodeView.getMap().getZoomed(nodeLineWidth);
      return zoomedLineWidth;
    }
    }

  @Override
  protected int getMainViewHeightWithFoldingMark() {
    int height = getHeight();
    final NodeView nodeView = getNodeView();
    final NodeModel model = nodeView.getModel();
    if (nodeView.getMap().getModeController().getMapController().isFolded(model)) {
      height += getZoomedFoldingSymbolHalfWidth();
    }
    return height;
  }

  @Override
    public
  Point getRightPoint() {
    int edgeWidth = getEdgeWidth();
    final Point in = new Point(getWidth() - 1, getHeight() - edgeWidth / 2);
    return in;
  }

  /*
   * (non-Javadoc)
   * @see freeplane.view.mindmapview.NodeView#getStyle()
   */
  @Override
    public
  String getShape() {
    return NodeStyleModel.STYLE_FORK;
  }

  @Override
  public void paintComponent(final Graphics graphics) {
    final Graphics2D g = (Graphics2D) graphics;
    final NodeView nodeView = getNodeView();
    final NodeModel model = nodeView.getModel();
    if (model == null) {
      return;
    }
    paintBackgound(g);
    paintDragOver(g);
    super.paintComponent(g);
  }

  @Override
  protected void paintBackground(final Graphics2D graphics, final Color color) {
    graphics.setColor(color);
    graphics.fillRect(0, 0, getWidth(), getHeight() - getEdgeWidth());
  }

  @Override
  void paintDecoration(final NodeView nodeView, final Graphics2D g) {
    final Stroke oldStroke = g.getStroke();
    float edgeWidth  = getEdgeWidth();
    g.setStroke(new BasicStroke(edgeWidth, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER));
    final Color oldColor = g.getColor();
    g.setColor(nodeView.getEdgeColor());
    Point leftLinePoint = getLeftPoint();
    g.drawLine(leftLinePoint.x, leftLinePoint.y, leftLinePoint.x + getWidth(), leftLinePoint.y);
    g.setColor(oldColor);
    g.setStroke(oldStroke);
    super.paintDecoration(nodeView, g);
    }
 
    @Override
    public Insets getInsets() {
        return  getInsets(null);
    }

  @Override
    public Insets getInsets(Insets insets) {
      final NodeView nodeView = getNodeView();
        int edgeWidth = nodeView.getEdgeWidth();
        final EdgeStyle style = nodeView.getEdgeStyle();
        edgeWidth = style.getNodeLineWidth(edgeWidth);
    if(insets == null)
        insets = new Insets(0, 2, edgeWidth, 2);
      else
        insets.set(0, 2, edgeWidth, 2);
        return insets;
    }
}
TOP

Related Classes of org.freeplane.view.swing.map.ForkMainView

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.