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    /*
006     * GToolbar.java
007     *
008     * Created on February 25, 2005, 11:14 AM
009     */
010    package graphlab.ui.components;
011    
012    import javax.swing.*;
013    import java.awt.*;
014    import java.util.Comparator;
015    import java.util.Vector;
016    
017    /**
018     * @author azin azadi
019     */
020    public class GToolbar extends JComponent {
021        /**
022         *
023         */
024        private static final long serialVersionUID = -7694324289573873831L;
025    
026        private JToolBar lastToolbar;
027    
028        Vector<pair> indices = new Vector<pair>();
029    
030        public Component addIndexed(JToolBar comp, int index) {
031            pair o = new pair(comp, index);
032            indices.add(o);
033            Object[] a = indices.toArray();
034    //        Arrays.sort(a, (Comparator<? super Object>) new pair(null, null));
035            for (int _index = 0; _index < a.length; _index++)
036                if (a[_index] == o)
037                    return super.add(comp, _index);
038            return super.add(comp, -1);
039        }
040    
041        public GToolbar() {
042            FlowLayout fl = new FlowLayout();
043            fl.setAlignment(FlowLayout.LEFT);
044            fl.setHgap(0);
045            fl.setVgap(0);
046            setLayout(fl);
047            setBorder(null);
048    //        setBorder(new LineBorder(Color.WHITE,1,true));
049        }
050    
051        /**
052         * creates a toolbar, add it, and return it
053         */
054        public JToolBar createToolBar() {
055            lastToolbar = new JToolBar();
056    //        lastToolbar.setBorderPainted(false);
057            lastToolbar.setFloatable(false);
058            lastToolbar.setMargin(new Insets(0, 0, 0, 0));
059            lastToolbar.setRollover(false);
060            lastToolbar.setBorder(null);
061            lastToolbar.setOpaque(true);
062            add(lastToolbar);
063            return lastToolbar;
064        }
065    
066        /**
067         * returns the last toolbar which created with createToolbar()
068         */
069        public JToolBar getLastToolBar() {
070            return lastToolbar;
071        }
072    }
073    
074    class pair implements Comparator<pair> {
075        private JToolBar b;
076        private Integer index;
077    
078        public pair(JToolBar j, Integer index) {
079            this.b = j;
080            this.index = index;
081        }
082    
083        public int compareTo(pair o) {
084            return index.compareTo(o.index);
085        }
086    
087        public int compare(pair o1, pair o2) {
088            return o1.compareTo(o2);
089        }
090    }