Package org.eclipse.gef.examples.logicdesigner.figures

Source Code of org.eclipse.gef.examples.logicdesigner.figures.CircuitFeedbackBorder

/*******************************************************************************
* Copyright (c) 2000, 2005 IBM Corporation and others.
* 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:
*     IBM Corporation - initial API and implementation
*******************************************************************************/
package org.eclipse.gef.examples.logicdesigner.figures;

import org.eclipse.draw2d.ColorConstants;
import org.eclipse.draw2d.Graphics;
import org.eclipse.draw2d.IFigure;
import org.eclipse.draw2d.geometry.Insets;
import org.eclipse.draw2d.geometry.Rectangle;

public class CircuitFeedbackBorder 
  extends CircuitBorder
{
 
private void drawConnectors(Graphics g, Rectangle rec) {
  int y1 = rec.y, 
    width = rec.width,x1,
    bottom = y1 + rec.height;
  for (int i = 0; i < 4; i++) {
    x1 = rec.x + (2 * i + 1) * width / 8;
   
    //Draw the "gap" for the connector
    g.drawLine(x1 - 2, y1 + 2, x1 + 3, y1 + 2);
   
    //Draw the connectors
    connector.translate(x1, y1);
    g.drawPolygon(connector);
    connector.translate(-x1, -y1);
    g.drawLine(x1 - 2, bottom - 3, x1 + 3, bottom - 3);
    bottomConnector.translate(x1, bottom);
    g.drawPolygon(bottomConnector);
    bottomConnector.translate(-x1, -bottom);
  }
}


public void paint(IFigure figure, Graphics g, Insets in) {
  g.setXORMode(true);
  g.setForegroundColor(ColorConstants.white)
  g.setBackgroundColor(LogicColorConstants.ghostFillColor);
 
  Rectangle r = figure.getBounds().getCropped(in);

  //Draw the sides of the border
  g.fillRectangle(r.x, r.y + 2, r.width, 6);
  g.fillRectangle(r.x, r.bottom() - 8, r.width, 6);
  g.fillRectangle(r.x, r.y + 2, 6, r.height - 4);
  g.fillRectangle(r.right() - 6, r.y + 2, 6, r.height - 4);

  g.fillRectangle(r.x, r.y + 2, 6, 6);
  g.fillRectangle(r.x, r.bottom() - 8, 6, 6);
  g.fillRectangle(r.right() - 6, r.y + 2, 6, 6);
  g.fillRectangle(r.right() - 6, r.bottom() - 8, 6, 6);
 
  //Outline the border
  g.drawPoint(r.x, r.y + 2);
  g.drawPoint(r.x, r.bottom() - 3);
  g.drawPoint(r.right() - 1, r.y + 2);
  g.drawPoint(r.right() - 1, r.bottom() - 3);
  g.drawLine(r.x, r.y + 2, r.right() - 1, r.y + 2);
  g.drawLine(r.x, r.bottom() - 3, r.right() - 1, r.bottom() - 3);
  g.drawLine(r.x, r.y + 2, r.x, r.bottom() - 3);
  g.drawLine(r.right() - 1, r.bottom() - 3, r.right() - 1, r.y + 2);
 
  r.crop(new Insets(1, 1, 0, 0));
  r.expand(1, 1);
  r.crop(getInsets(figure));
  drawConnectors(g, figure.getBounds().getCropped(in));
}

}
TOP

Related Classes of org.eclipse.gef.examples.logicdesigner.figures.CircuitFeedbackBorder

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.