/*************************************************** * * cismet GmbH, Saarbruecken, Germany * * ... and it just works. * ****************************************************/ package de.cismet.tools.gui; import java.awt.*; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.ComponentAdapter; import java.awt.event.ComponentEvent; import java.awt.event.MouseAdapter; import java.awt.event.MouseEvent; import java.awt.geom.AffineTransform; import javax.swing.JButton; import javax.swing.JCheckBox; import javax.swing.JDialog; import javax.swing.JLabel; import javax.swing.JPanel; import javax.swing.JProgressBar; import javax.swing.JSlider; import javax.swing.event.ChangeEvent; import javax.swing.event.ChangeListener; /** * DOCUMENT ME! * * @version $Revision$, $Date$ */ public class CurvedFlowBackgroundPanel extends JPanel { //~ Instance fields -------------------------------------------------------- private int unten = 20; private int oben = 20; private double untenFraction = -1; private double obenFraction = -1; private boolean designMode; private boolean relativeHeights = false; //~ Constructors ----------------------------------------------------------- /** * Creates a new CurvedFlowBackgroundPanel object. */ public CurvedFlowBackgroundPanel() { super(); setOpaque(false); addMouseListener(new MouseAdapter() { @Override public void mouseClicked(final MouseEvent e) { super.mouseClicked(e); if ((e.getClickCount() == 2) && isDesignMode()) { final Frame parentFrame = StaticSwingTools.getParentFrame(CurvedFlowBackgroundPanel.this); final JDialog jd = new JDialog(parentFrame); jd.setTitle(CurvedFlowBackgroundPanel.this.getClass().getName() + " Designer"); jd.getContentPane().setLayout(new BorderLayout()); jd.setDefaultCloseOperation(JDialog.DISPOSE_ON_CLOSE); final JSlider sliOben = new JSlider(0, 100); final JSlider sliUnten = new JSlider(0, 100); final JLabel lblInfo = new JLabel(); final JButton cmdRefresh = new JButton("refresh"); final JCheckBox chkRelative = new JCheckBox("relativeHeight", isRelativeHeights()); chkRelative.addActionListener(new ActionListener() { @Override public void actionPerformed(final ActionEvent e) { setRelativeHeights(chkRelative.isSelected()); } }); sliOben.addChangeListener(new ChangeListener() { @Override public void stateChanged(final ChangeEvent e) { setOben((double)(sliOben.getValue() / 100.0)); lblInfo.setText(getInfoString()); } }); sliUnten.addChangeListener(new ChangeListener() { @Override public void stateChanged(final ChangeEvent e) { setUnten((double)(sliUnten.getValue() / 100.0)); lblInfo.setText(getInfoString()); } }); jd.getContentPane().add(lblInfo, BorderLayout.CENTER); jd.getContentPane().add(sliOben, BorderLayout.NORTH); jd.getContentPane().add(sliUnten, BorderLayout.SOUTH); jd.getContentPane().add(cmdRefresh, BorderLayout.EAST); jd.getContentPane().add(chkRelative, BorderLayout.WEST); lblInfo.setText(getInfoString()); cmdRefresh.addActionListener(new ActionListener() { @Override public void actionPerformed(final ActionEvent e) { lblInfo.setText(getInfoString()); } }); sliOben.setValue((int)((double)getOben() / (double)getHeight() * 100)); sliUnten.setValue((int)((double)getUnten() / (double)getHeight() * 100)); jd.pack(); StaticSwingTools.showDialog(jd); } } }); addComponentListener(new ComponentAdapter() { @Override public void componentResized(final ComponentEvent e) { super.componentResized(e); if ((untenFraction < 0) || (obenFraction < 0)) { untenFraction = (double)getUnten() / (double)getHeight(); obenFraction = (double)getOben() / (double)getHeight(); } if (relativeHeights) { setOben(obenFraction); setUnten(untenFraction); } } }); } /** * Creates a new CurvedFlowBackgroundPanel object. * * @param OBEN DOCUMENT ME! * @param UNTEN DOCUMENT ME! */ public CurvedFlowBackgroundPanel(final int OBEN, final int UNTEN) { this(); oben = OBEN; unten = UNTEN; } //~ Methods ---------------------------------------------------------------- /** * DOCUMENT ME! * * @return DOCUMENT ME! */ private String getInfoString() { return "Info: Size=" + getWidth() + "," + getHeight() + " Oben(abs,rel)=" + getOben() + "," + ((double)getOben() / (double)getHeight()) + " Unten(abs,rel)=" + getUnten() + "," + ((double)getUnten() / (double)getHeight()); } /** * DOCUMENT ME! * * @return DOCUMENT ME! */ public boolean isDesignMode() { return designMode; } /** * DOCUMENT ME! * * @param designMode DOCUMENT ME! */ public void setDesignMode(final boolean designMode) { this.designMode = designMode; } /** * DOCUMENT ME! * * @param WIDTH DOCUMENT ME! * @param HEIGHT DOCUMENT ME! * * @return DOCUMENT ME! */ private java.awt.image.BufferedImage createOben(final int WIDTH, final int HEIGHT) { if ((WIDTH <= 0) || (HEIGHT <= 0)) { return null; } final java.awt.GraphicsConfiguration GFX_CONF = java.awt.GraphicsEnvironment.getLocalGraphicsEnvironment() .getDefaultScreenDevice() .getDefaultConfiguration(); final java.awt.image.BufferedImage IMAGE = GFX_CONF.createCompatibleImage( WIDTH, HEIGHT, java.awt.Transparency.TRANSLUCENT); final java.awt.Graphics2D G2 = IMAGE.createGraphics(); G2.setRenderingHint(java.awt.RenderingHints.KEY_ANTIALIASING, java.awt.RenderingHints.VALUE_ANTIALIAS_ON); G2.setRenderingHint(java.awt.RenderingHints.KEY_RENDERING, java.awt.RenderingHints.VALUE_RENDER_QUALITY); G2.setRenderingHint(java.awt.RenderingHints.KEY_DITHERING, java.awt.RenderingHints.VALUE_DITHER_ENABLE); G2.setRenderingHint( java.awt.RenderingHints.KEY_ALPHA_INTERPOLATION, java.awt.RenderingHints.VALUE_ALPHA_INTERPOLATION_QUALITY); G2.setRenderingHint( java.awt.RenderingHints.KEY_COLOR_RENDERING, java.awt.RenderingHints.VALUE_COLOR_RENDER_QUALITY); G2.setRenderingHint(java.awt.RenderingHints.KEY_STROKE_CONTROL, java.awt.RenderingHints.VALUE_STROKE_PURE); G2.setRenderingHint( java.awt.RenderingHints.KEY_TEXT_ANTIALIASING, java.awt.RenderingHints.VALUE_TEXT_ANTIALIAS_ON); final java.awt.font.FontRenderContext RENDER_CONTEXT = new java.awt.font.FontRenderContext(null, true, true); final int IMAGE_WIDTH = IMAGE.getWidth(); final int IMAGE_HEIGHT = IMAGE.getHeight(); final java.awt.geom.GeneralPath OBEN1_1 = new java.awt.geom.GeneralPath(); OBEN1_1.setWindingRule(java.awt.geom.GeneralPath.WIND_EVEN_ODD); OBEN1_1.moveTo(IMAGE_WIDTH * 0.0, IMAGE_HEIGHT * 1.0); OBEN1_1.lineTo(IMAGE_WIDTH * 0.0, IMAGE_HEIGHT * 0.0); OBEN1_1.lineTo(IMAGE_WIDTH * 1.0, IMAGE_HEIGHT * 0.0); OBEN1_1.curveTo(IMAGE_WIDTH * 1.0, IMAGE_HEIGHT * 0.0, IMAGE_WIDTH * 1.0, IMAGE_HEIGHT * 0.078125, IMAGE_WIDTH * 1.0, IMAGE_HEIGHT * 0.078125); OBEN1_1.curveTo(IMAGE_WIDTH * 0.337890625, IMAGE_HEIGHT * 0.181640625, IMAGE_WIDTH * 0.4921875, IMAGE_HEIGHT * 0.96484375, IMAGE_WIDTH * 0.0, IMAGE_HEIGHT * 1.0); OBEN1_1.curveTo(IMAGE_WIDTH * 0.0, IMAGE_HEIGHT * 1.0, IMAGE_WIDTH * 0.0, IMAGE_HEIGHT * 1.0, IMAGE_WIDTH * 0.0, IMAGE_HEIGHT * 1.0); OBEN1_1.closePath(); OBEN1_1.moveTo(IMAGE_WIDTH * 0.0, IMAGE_HEIGHT * 1.0); OBEN1_1.lineTo(IMAGE_WIDTH * 0.0, IMAGE_HEIGHT * 1.0); OBEN1_1.closePath(); // final java.awt.Color FILL_COLOR_PATH1_1 = new java.awt.Color(13421772); final java.awt.Color FILL_COLOR_PATH1_1 = new java.awt.Color(0, 0, 0, 0); G2.setColor(FILL_COLOR_PATH1_1); G2.fill(OBEN1_1); final java.awt.geom.GeneralPath OBEN2_1 = new java.awt.geom.GeneralPath(); OBEN2_1.setWindingRule(java.awt.geom.GeneralPath.WIND_EVEN_ODD); OBEN2_1.moveTo(IMAGE_WIDTH * 0.0, IMAGE_HEIGHT * 1.0); OBEN2_1.lineTo(IMAGE_WIDTH * 0.0, IMAGE_HEIGHT * 0.0); OBEN2_1.lineTo(IMAGE_WIDTH * 1.0, IMAGE_HEIGHT * 0.0); OBEN2_1.curveTo(IMAGE_WIDTH * 1.0, IMAGE_HEIGHT * 0.0, IMAGE_WIDTH * 1.0, IMAGE_HEIGHT * 0.078125, IMAGE_WIDTH * 1.0, IMAGE_HEIGHT * 0.078125); OBEN2_1.curveTo(IMAGE_WIDTH * 0.337890625, IMAGE_HEIGHT * 0.181640625, IMAGE_WIDTH * 0.4921875, IMAGE_HEIGHT * 0.96484375, IMAGE_WIDTH * 0.0, IMAGE_HEIGHT * 1.0); OBEN2_1.curveTo(IMAGE_WIDTH * 0.0, IMAGE_HEIGHT * 1.0, IMAGE_WIDTH * 0.0, IMAGE_HEIGHT * 1.0, IMAGE_WIDTH * 0.0, IMAGE_HEIGHT * 1.0); OBEN2_1.closePath(); OBEN2_1.moveTo(IMAGE_WIDTH * 0.0, IMAGE_HEIGHT * 1.0); OBEN2_1.lineTo(IMAGE_WIDTH * 0.0, IMAGE_HEIGHT * 1.0); OBEN2_1.closePath(); final java.awt.Color FILL_COLOR_PATH2_1 = new java.awt.Color(13421772); G2.setColor(FILL_COLOR_PATH2_1); G2.fill(OBEN2_1); G2.dispose(); return IMAGE; } /** * G2.drawImage(createUnten_EBENE_1_0_Image(100, 100), 0, 0, null); * * @param WIDTH DOCUMENT ME! * @param HEIGHT DOCUMENT ME! * * @return DOCUMENT ME! */ private java.awt.image.BufferedImage createUnten(final int WIDTH, final int HEIGHT) { if ((WIDTH <= 0) || (HEIGHT <= 0)) { return null; } final java.awt.GraphicsConfiguration GFX_CONF = java.awt.GraphicsEnvironment.getLocalGraphicsEnvironment() .getDefaultScreenDevice() .getDefaultConfiguration(); final java.awt.image.BufferedImage IMAGE = GFX_CONF.createCompatibleImage( WIDTH, HEIGHT, java.awt.Transparency.TRANSLUCENT); final java.awt.Graphics2D G2 = IMAGE.createGraphics(); G2.setRenderingHint(java.awt.RenderingHints.KEY_ANTIALIASING, java.awt.RenderingHints.VALUE_ANTIALIAS_ON); G2.setRenderingHint(java.awt.RenderingHints.KEY_RENDERING, java.awt.RenderingHints.VALUE_RENDER_QUALITY); G2.setRenderingHint(java.awt.RenderingHints.KEY_DITHERING, java.awt.RenderingHints.VALUE_DITHER_ENABLE); G2.setRenderingHint( java.awt.RenderingHints.KEY_ALPHA_INTERPOLATION, java.awt.RenderingHints.VALUE_ALPHA_INTERPOLATION_QUALITY); G2.setRenderingHint( java.awt.RenderingHints.KEY_COLOR_RENDERING, java.awt.RenderingHints.VALUE_COLOR_RENDER_QUALITY); G2.setRenderingHint(java.awt.RenderingHints.KEY_STROKE_CONTROL, java.awt.RenderingHints.VALUE_STROKE_PURE); G2.setRenderingHint( java.awt.RenderingHints.KEY_TEXT_ANTIALIASING, java.awt.RenderingHints.VALUE_TEXT_ANTIALIAS_ON); final java.awt.font.FontRenderContext RENDER_CONTEXT = new java.awt.font.FontRenderContext(null, true, true); final int IMAGE_WIDTH = IMAGE.getWidth(); final int IMAGE_HEIGHT = IMAGE.getHeight(); final java.awt.geom.GeneralPath UNTEN1_1 = new java.awt.geom.GeneralPath(); UNTEN1_1.setWindingRule(java.awt.geom.GeneralPath.WIND_EVEN_ODD); UNTEN1_1.moveTo(IMAGE_WIDTH * 1.0, IMAGE_HEIGHT * 0.0); UNTEN1_1.lineTo(IMAGE_WIDTH * 1.0, IMAGE_HEIGHT * 1.0); UNTEN1_1.lineTo(IMAGE_WIDTH * 0.0, IMAGE_HEIGHT * 1.0); UNTEN1_1.curveTo(IMAGE_WIDTH * 0.0, IMAGE_HEIGHT * 1.0, IMAGE_WIDTH * 0.0, IMAGE_HEIGHT * 0.921875, IMAGE_WIDTH * 0.0, IMAGE_HEIGHT * 0.921875); UNTEN1_1.curveTo(IMAGE_WIDTH * 0.662109375, IMAGE_HEIGHT * 0.818359375, IMAGE_WIDTH * 0.5078125, IMAGE_HEIGHT * 0.03515625, IMAGE_WIDTH * 1.0, IMAGE_HEIGHT * 0.0); UNTEN1_1.curveTo(IMAGE_WIDTH * 1.0, IMAGE_HEIGHT * 0.0, IMAGE_WIDTH * 1.0, IMAGE_HEIGHT * 0.0, IMAGE_WIDTH * 1.0, IMAGE_HEIGHT * 0.0); UNTEN1_1.closePath(); UNTEN1_1.moveTo(IMAGE_WIDTH * 1.0, IMAGE_HEIGHT * 0.0); UNTEN1_1.lineTo(IMAGE_WIDTH * 1.0, IMAGE_HEIGHT * 0.0); UNTEN1_1.closePath(); final java.awt.Color FILL_COLOR_PATH1_1 = new java.awt.Color(13421772); G2.setColor(FILL_COLOR_PATH1_1); G2.fill(UNTEN1_1); final java.awt.geom.GeneralPath UNTEN2_1 = new java.awt.geom.GeneralPath(); UNTEN2_1.setWindingRule(java.awt.geom.GeneralPath.WIND_EVEN_ODD); UNTEN2_1.moveTo(IMAGE_WIDTH * 1.0, IMAGE_HEIGHT * 0.0); UNTEN2_1.lineTo(IMAGE_WIDTH * 1.0, IMAGE_HEIGHT * 1.0); UNTEN2_1.lineTo(IMAGE_WIDTH * 0.0, IMAGE_HEIGHT * 1.0); UNTEN2_1.curveTo(IMAGE_WIDTH * 0.0, IMAGE_HEIGHT * 1.0, IMAGE_WIDTH * 0.0, IMAGE_HEIGHT * 0.921875, IMAGE_WIDTH * 0.0, IMAGE_HEIGHT * 0.921875); UNTEN2_1.curveTo(IMAGE_WIDTH * 0.662109375, IMAGE_HEIGHT * 0.818359375, IMAGE_WIDTH * 0.5078125, IMAGE_HEIGHT * 0.03515625, IMAGE_WIDTH * 1.0, IMAGE_HEIGHT * 0.0); UNTEN2_1.curveTo(IMAGE_WIDTH * 1.0, IMAGE_HEIGHT * 0.0, IMAGE_WIDTH * 1.0, IMAGE_HEIGHT * 0.0, IMAGE_WIDTH * 1.0, IMAGE_HEIGHT * 0.0); UNTEN2_1.closePath(); UNTEN2_1.moveTo(IMAGE_WIDTH * 1.0, IMAGE_HEIGHT * 0.0); UNTEN2_1.lineTo(IMAGE_WIDTH * 1.0, IMAGE_HEIGHT * 0.0); UNTEN2_1.closePath(); final java.awt.Color FILL_COLOR_PATH2_1 = new java.awt.Color(13421772); G2.setColor(FILL_COLOR_PATH2_1); G2.fill(UNTEN2_1); G2.dispose(); return IMAGE; } /** * DOCUMENT ME! * * @param WIDTH DOCUMENT ME! * @param HEIGHT DOCUMENT ME! * @param HEIGHT_OBEN DOCUMENT ME! * @param HEIGHT_UNTEN DOCUMENT ME! * * @return DOCUMENT ME! */ private java.awt.image.BufferedImage createFlow(final int WIDTH, final int HEIGHT, final int HEIGHT_OBEN, final int HEIGHT_UNTEN) { if ((WIDTH <= 0) || (HEIGHT <= 0)) { return null; } final java.awt.GraphicsConfiguration GFX_CONF = java.awt.GraphicsEnvironment.getLocalGraphicsEnvironment() .getDefaultScreenDevice() .getDefaultConfiguration(); final java.awt.image.BufferedImage IMAGE = GFX_CONF.createCompatibleImage( WIDTH, HEIGHT, java.awt.Transparency.TRANSLUCENT); final java.awt.Graphics2D G2 = IMAGE.createGraphics(); G2.setRenderingHint(java.awt.RenderingHints.KEY_ANTIALIASING, java.awt.RenderingHints.VALUE_ANTIALIAS_ON); G2.setRenderingHint(java.awt.RenderingHints.KEY_RENDERING, java.awt.RenderingHints.VALUE_RENDER_QUALITY); G2.setRenderingHint(java.awt.RenderingHints.KEY_DITHERING, java.awt.RenderingHints.VALUE_DITHER_ENABLE); G2.setRenderingHint( java.awt.RenderingHints.KEY_ALPHA_INTERPOLATION, java.awt.RenderingHints.VALUE_ALPHA_INTERPOLATION_QUALITY); G2.setRenderingHint( java.awt.RenderingHints.KEY_COLOR_RENDERING, java.awt.RenderingHints.VALUE_COLOR_RENDER_QUALITY); G2.setRenderingHint(java.awt.RenderingHints.KEY_STROKE_CONTROL, java.awt.RenderingHints.VALUE_STROKE_PURE); G2.setRenderingHint( java.awt.RenderingHints.KEY_TEXT_ANTIALIASING, java.awt.RenderingHints.VALUE_TEXT_ANTIALIAS_ON); final java.awt.font.FontRenderContext RENDER_CONTEXT = new java.awt.font.FontRenderContext(null, true, true); final int IMAGE_WIDTH = IMAGE.getWidth(); int IMAGE_HEIGHT = HEIGHT_OBEN; G2.setPaint(getBackground()); G2.fillRect(0, 0, WIDTH, HEIGHT); G2.setComposite(AlphaComposite.Clear); final java.awt.geom.GeneralPath OBEN1_1 = new java.awt.geom.GeneralPath(); OBEN1_1.setWindingRule(java.awt.geom.GeneralPath.WIND_EVEN_ODD); OBEN1_1.moveTo(IMAGE_WIDTH * 0.0, IMAGE_HEIGHT * 1.0); OBEN1_1.lineTo(IMAGE_WIDTH * 0.0, IMAGE_HEIGHT * 0.0); OBEN1_1.lineTo(IMAGE_WIDTH * 1.0, IMAGE_HEIGHT * 0.0); OBEN1_1.curveTo(IMAGE_WIDTH * 1.0, IMAGE_HEIGHT * 0.0, IMAGE_WIDTH * 1.0, IMAGE_HEIGHT * 0.078125, IMAGE_WIDTH * 1.0, IMAGE_HEIGHT * 0.078125); OBEN1_1.curveTo(IMAGE_WIDTH * 0.337890625, IMAGE_HEIGHT * 0.181640625, IMAGE_WIDTH * 0.4921875, IMAGE_HEIGHT * 0.96484375, IMAGE_WIDTH * 0.0, IMAGE_HEIGHT * 1.0); OBEN1_1.curveTo(IMAGE_WIDTH * 0.0, IMAGE_HEIGHT * 1.0, IMAGE_WIDTH * 0.0, IMAGE_HEIGHT * 1.0, IMAGE_WIDTH * 0.0, IMAGE_HEIGHT * 1.0); OBEN1_1.closePath(); OBEN1_1.moveTo(IMAGE_WIDTH * 0.0, IMAGE_HEIGHT * 1.0); OBEN1_1.lineTo(IMAGE_WIDTH * 0.0, IMAGE_HEIGHT * 1.0); OBEN1_1.closePath(); // final java.awt.Color FILL_COLOR_PATH1_1 = new java.awt.Color(13421772); // final java.awt.Color FILL_COLOR_PATH1_1 = new java.awt.Color(0,0,0,0); // G2.setColor(FILL_COLOR_PATH1_1); G2.fill(OBEN1_1); final java.awt.geom.GeneralPath OBEN2_1 = new java.awt.geom.GeneralPath(); OBEN2_1.setWindingRule(java.awt.geom.GeneralPath.WIND_EVEN_ODD); OBEN2_1.moveTo(IMAGE_WIDTH * 0.0, IMAGE_HEIGHT * 1.0); OBEN2_1.lineTo(IMAGE_WIDTH * 0.0, IMAGE_HEIGHT * 0.0); OBEN2_1.lineTo(IMAGE_WIDTH * 1.0, IMAGE_HEIGHT * 0.0); OBEN2_1.curveTo(IMAGE_WIDTH * 1.0, IMAGE_HEIGHT * 0.0, IMAGE_WIDTH * 1.0, IMAGE_HEIGHT * 0.078125, IMAGE_WIDTH * 1.0, IMAGE_HEIGHT * 0.078125); OBEN2_1.curveTo(IMAGE_WIDTH * 0.337890625, IMAGE_HEIGHT * 0.181640625, IMAGE_WIDTH * 0.4921875, IMAGE_HEIGHT * 0.96484375, IMAGE_WIDTH * 0.0, IMAGE_HEIGHT * 1.0); OBEN2_1.curveTo(IMAGE_WIDTH * 0.0, IMAGE_HEIGHT * 1.0, IMAGE_WIDTH * 0.0, IMAGE_HEIGHT * 1.0, IMAGE_WIDTH * 0.0, IMAGE_HEIGHT * 1.0); OBEN2_1.closePath(); OBEN2_1.moveTo(IMAGE_WIDTH * 0.0, IMAGE_HEIGHT * 1.0); OBEN2_1.lineTo(IMAGE_WIDTH * 0.0, IMAGE_HEIGHT * 1.0); OBEN2_1.closePath(); // final java.awt.Color FILL_COLOR_PATH2_1 = new java.awt.Color(13421772); // G2.setColor(FILL_COLOR_PATH2_1); G2.fill(OBEN2_1); G2.translate(0, HEIGHT - HEIGHT_UNTEN); IMAGE_HEIGHT = HEIGHT_UNTEN; final java.awt.geom.GeneralPath UNTEN1_1 = new java.awt.geom.GeneralPath(); UNTEN1_1.setWindingRule(java.awt.geom.GeneralPath.WIND_EVEN_ODD); UNTEN1_1.moveTo(IMAGE_WIDTH * 1.0, IMAGE_HEIGHT * 0.0); UNTEN1_1.lineTo(IMAGE_WIDTH * 1.0, IMAGE_HEIGHT * 1.0); UNTEN1_1.lineTo(IMAGE_WIDTH * 0.0, IMAGE_HEIGHT * 1.0); UNTEN1_1.curveTo(IMAGE_WIDTH * 0.0, IMAGE_HEIGHT * 1.0, IMAGE_WIDTH * 0.0, IMAGE_HEIGHT * 0.921875, IMAGE_WIDTH * 0.0, IMAGE_HEIGHT * 0.921875); UNTEN1_1.curveTo(IMAGE_WIDTH * 0.662109375, IMAGE_HEIGHT * 0.818359375, IMAGE_WIDTH * 0.5078125, IMAGE_HEIGHT * 0.03515625, IMAGE_WIDTH * 1.0, IMAGE_HEIGHT * 0.0); UNTEN1_1.curveTo(IMAGE_WIDTH * 1.0, IMAGE_HEIGHT * 0.0, IMAGE_WIDTH * 1.0, IMAGE_HEIGHT * 0.0, IMAGE_WIDTH * 1.0, IMAGE_HEIGHT * 0.0); UNTEN1_1.closePath(); UNTEN1_1.moveTo(IMAGE_WIDTH * 1.0, IMAGE_HEIGHT * 0.0); UNTEN1_1.lineTo(IMAGE_WIDTH * 1.0, IMAGE_HEIGHT * 0.0); UNTEN1_1.closePath(); final java.awt.Color FILL_COLOR_PATH1_1 = new java.awt.Color(13421772); G2.setColor(FILL_COLOR_PATH1_1); G2.fill(UNTEN1_1); final java.awt.geom.GeneralPath UNTEN2_1 = new java.awt.geom.GeneralPath(); UNTEN2_1.setWindingRule(java.awt.geom.GeneralPath.WIND_EVEN_ODD); UNTEN2_1.moveTo(IMAGE_WIDTH * 1.0, IMAGE_HEIGHT * 0.0); UNTEN2_1.lineTo(IMAGE_WIDTH * 1.0, IMAGE_HEIGHT * 1.0); UNTEN2_1.lineTo(IMAGE_WIDTH * 0.0, IMAGE_HEIGHT * 1.0); UNTEN2_1.curveTo(IMAGE_WIDTH * 0.0, IMAGE_HEIGHT * 1.0, IMAGE_WIDTH * 0.0, IMAGE_HEIGHT * 0.921875, IMAGE_WIDTH * 0.0, IMAGE_HEIGHT * 0.921875); UNTEN2_1.curveTo(IMAGE_WIDTH * 0.662109375, IMAGE_HEIGHT * 0.818359375, IMAGE_WIDTH * 0.5078125, IMAGE_HEIGHT * 0.03515625, IMAGE_WIDTH * 1.0, IMAGE_HEIGHT * 0.0); UNTEN2_1.curveTo(IMAGE_WIDTH * 1.0, IMAGE_HEIGHT * 0.0, IMAGE_WIDTH * 1.0, IMAGE_HEIGHT * 0.0, IMAGE_WIDTH * 1.0, IMAGE_HEIGHT * 0.0); UNTEN2_1.closePath(); UNTEN2_1.moveTo(IMAGE_WIDTH * 1.0, IMAGE_HEIGHT * 0.0); UNTEN2_1.lineTo(IMAGE_WIDTH * 1.0, IMAGE_HEIGHT * 0.0); UNTEN2_1.closePath(); G2.fill(UNTEN2_1); G2.dispose(); return IMAGE; } @Override public void paint(final Graphics g) { super.paint(g); ((Graphics2D)g).drawImage(createFlow(getWidth(), getHeight(), oben, unten), 0, 0, null); } /** * DOCUMENT ME! * * @return DOCUMENT ME! */ public int getOben() { return oben; } /** * DOCUMENT ME! * * @param oben DOCUMENT ME! */ public void setOben(final int oben) { this.oben = oben; if (!relativeHeights) { obenFraction = (double)getOben() / (double)getHeight(); } repaint(); } /** * DOCUMENT ME! * * @param fractionOben DOCUMENT ME! */ public void setOben(final double fractionOben) { obenFraction = fractionOben; final int o = (int)(((double)getHeight()) * fractionOben); setOben(o); } /** * DOCUMENT ME! * * @param fractionUnten DOCUMENT ME! */ public void setUnten(final double fractionUnten) { untenFraction = fractionUnten; final int u = (int)(((double)getHeight()) * fractionUnten); setUnten(u); } /** * DOCUMENT ME! * * @return DOCUMENT ME! */ public int getUnten() { return unten; } /** * DOCUMENT ME! * * @param unten DOCUMENT ME! */ public void setUnten(final int unten) { this.unten = unten; if (!relativeHeights) { untenFraction = (double)getUnten() / (double)getHeight(); } repaint(); } /** * DOCUMENT ME! * * @return DOCUMENT ME! */ public boolean isRelativeHeights() { return relativeHeights; } /** * DOCUMENT ME! * * @param relativeHeights DOCUMENT ME! */ public void setRelativeHeights(final boolean relativeHeights) { this.relativeHeights = relativeHeights; } }