001    // GraphLab Project: http://graphlab.sharif.edu
002    // Copyright (C) 2008 Mathematical Science Department of Sharif University of Technology
003    // Distributed under the terms of the GNU General Public License (GPL): http://www.gnu.org/licenses/
004    
005    package graphlab.plugins.main.ui;
006    
007    import graphlab.graph.old.GShape;
008    import graphlab.ui.components.gpropertyeditor.GBasicCellRenderer;
009    import graphlab.ui.components.gpropertyeditor.editors.inplace.ValueSet;
010    
011    import javax.swing.*;
012    import java.awt.*;
013    
014    /**
015     * @author Azin Azadi
016     */
017    public class GShapeRenderer implements ValueSet, GBasicCellRenderer<GShape> {
018        public Component getRendererComponent(final GShape value) {
019            //Vertex v=new Vertex();
020            JPanel p = new JPanel() {
021    
022                /**
023                 *
024                 */
025                private static final long serialVersionUID = 880282301386500240L;
026    
027                @Override
028                public void paint(Graphics g) {
029                    super.paint(g);
030                    int h = getHeight();
031                    g.drawString(((GShape) value).name + "", h + 4, (h - 2) / 2 + 8);
032                    g.setColor(Color.lightGray);
033                    GShape.fillShape((GShape) value, g, h - 1, h - 1);
034                    g.setColor(Color.darkGray);
035                    GShape.drawShape((GShape) value, g, h - 1, h - 1);
036    //                g.setColor(Color.black);
037                }
038            };
039            p.setPreferredSize(new Dimension(50, 30));
040            p.setBackground(Color.white);
041            return p;
042        }
043    
044        public Object[] getValues() {
045            return new GShape[]{
046                    GShape.OVAL,
047                    GShape.RECTANGLE,
048                    GShape.ROUNDRECT,
049                    GShape.STAR,
050                    GShape.SIXPOINTSTAR,
051                    GShape.SEVENPOINTSTAR,
052                    GShape.EIGHTPOINTSTAR,
053                    GShape.NINEPOINTSTAR,
054                    GShape.TENPOINTSTAR,
055                    GShape.LEFTWARDTTRIANGLE,
056                    GShape.RIGHTWARDTRIANGLE,
057                    GShape.UPWARDTRIANGLE,
058                    GShape.DOWNWARDTRIANGLE,
059                    GShape.REGULARHEXAGON,
060                    GShape.REGULARPENTAGON,
061                    GShape.DOWNWARDTRAPEZOID,
062                    GShape.UPWARDTRAPEZOID,
063                    GShape.RIGHTWARDTRAPEZOID,
064                    GShape.LEFTWARDTRAPEZOID,
065                    GShape.DOWNWARDPARALLELOGRAM,
066                    GShape.UPWARDPARALLELOGRAM,
067                    GShape.NICESTAR,
068                    GShape.NICESIXPOINTSTAR,
069                    GShape.NICESEVENPOINTSTAR,
070                    GShape.NICEEIGHTPOINTSTAR,
071                    GShape.NICENINEPOINTSTAR,
072                    GShape.NICETENPOINTSTAR,
073    
074    
075            };
076        }
077    
078    
079    }