Changeset 23199 in osm for applications/editors


Ignore:
Timestamp:
2010-09-15T20:11:07+02:00 (14 years ago)
Author:
postfix
Message:

last commit corrected

Location:
applications/editors/josm/plugins/smed/src/smed
Files:
1 edited
2 copied

Legend:

Unmodified
Added
Removed
  • applications/editors/josm/plugins/smed/src/smed/plug/ifc/SmedPluggable.java

    r23193 r23199  
    66public interface SmedPluggable {
    77
    8     boolean start();
    9     boolean start(JComponent panel);
    10     boolean stop();
    11     String getName();
    12    
    13     void setPluginManager(SmedPluginManager manager);
     8        boolean start();
     9        boolean stop();
     10        String getName();
     11        String getInfo();
     12        JComponent getComponent();
     13       
     14        void setPluginManager(SmedPluginManager manager);
     15
    1416}
    1517
  • applications/editors/josm/plugins/smed/src/smed/plug/util/SmedPluginLoader.java

    r23194 r23199  
    99import java.net.URLClassLoader;
    1010import java.util.ArrayList;
     11import java.util.Arrays;
    1112import java.util.Collection;
    1213import java.util.List;
     
    1920public class SmedPluginLoader {
    2021
    21     public static List<SmedPluggable> loadPlugins(File plugDir) throws IOException {
    22         File[] plugJars = plugDir.listFiles(new JARFileFilter());
    23        
    24         URL[] urls = fileArrayToURLArray(plugJars);
    25         if(urls == null) return null;
    26        
    27         ClassLoader cl = new URLClassLoader(urls);
    28         List<Class<SmedPluggable>> plugClasses = extractClassesFromJARs(plugJars, cl);
    29        
    30         if(plugClasses == null) return null;
    31         else return createPluggableObjects(plugClasses);
    32     }
     22
     23        public static List<SmedPluggable> loadPlugins(File plugDir) throws IOException {
     24                File[] plugJars = plugDir.listFiles(new JARFileFilter());
     25                Arrays.sort(plugJars);
     26               
     27                URL[] urls = fileArrayToURLArray(plugJars);
     28                if(urls == null) return null;
     29               
     30                ClassLoader cl = new URLClassLoader(urls);
     31                List<Class<SmedPluggable>> plugClasses = extractClassesFromJARs(plugJars, cl);
     32               
     33                if(plugClasses == null) return null;
     34                else return createPluggableObjects(plugClasses);
     35        }
    3336
    3437    private static List<SmedPluggable> createPluggableObjects(List<Class<SmedPluggable>> pluggables) {
  • applications/editors/josm/plugins/smed/src/smed/tabs/SmedTabbedPane.java

    r23194 r23199  
    11package smed.tabs;
    22
    3 import java.awt.Dimension;
    43import java.awt.GridLayout;
    54import java.awt.event.KeyEvent;
     
    109import javax.swing.Icon;
    1110import javax.swing.JComponent;
    12 import javax.swing.JLabel;
    1311import javax.swing.JPanel;
    1412import javax.swing.JTabbedPane;
     
    2624    private static final long serialVersionUID = 1L;
    2725
    28     @SuppressWarnings("null")
    29     public SmedTabbedPane() {
    30         super(new GridLayout(1, 1));
    31 
    32         List<SmedPluggable> plugins = null;
    33         String pluginDirName = Main.pref.getPluginsDirectory().getAbsolutePath();
    34         try {
    35             plugins = SmedPluginLoader.loadPlugins(new File(pluginDirName + "/splug"));
    36         } catch (IOException e) {
    37             e.printStackTrace();
    38         }
     26        public SmedTabbedPane() {
     27                super(new GridLayout(1, 1));
     28               
     29                List<SmedPluggable> plugins = null;
     30                String pluginDirName = Main.pref.getPluginsDirectory().getAbsolutePath();
     31                try {
     32                        plugins = SmedPluginLoader.loadPlugins(new File(pluginDirName + "/splug"));
     33                } catch (IOException e) {
     34                        e.printStackTrace();
     35                }
     36               
    3937
    4038        Icon icon = null;
    4139        JTabbedPane tabbedPane = new JTabbedPane();
    4240
    43         JComponent panel1;
    44         if(plugins == null) {
    45             panel1 = makeTextPanel("Panel #1");
    46             tabbedPane.addTab("Tab 1", icon , panel1, "Does nothing");
    47         } else {
    48             panel1 = new JPanel();
    49             plugins.get(0).start(panel1);
    50             tabbedPane.addTab(plugins.get(0).getName(), icon , panel1, "say hello");
    51         }
    52 
    53         tabbedPane.setMnemonicAt(0, KeyEvent.VK_1);
    54 
    55 
    56         JComponent panel2 = makeTextPanel("Panel #2");
    57         tabbedPane.addTab("Tab 2", icon, panel2, "Does twice as much nothing");
    58         tabbedPane.setMnemonicAt(1, KeyEvent.VK_2);
    59 
    60         JComponent panel3 = makeTextPanel("Panel #3");
    61         tabbedPane.addTab("Tab 3", icon, panel3, "Still does nothing");
    62         tabbedPane.setMnemonicAt(2, KeyEvent.VK_3);
    63 
    64         JComponent panel4 = makeTextPanel( "Panel #4 (has a preferred size of 410 x 50).");
    65         panel4.setPreferredSize(new Dimension(410, 50));
    66         tabbedPane.addTab("Tab 4", icon, panel4, "Does nothing at all");
    67         tabbedPane.setMnemonicAt(3, KeyEvent.VK_4);
     41                JComponent panel;
     42                int i = 0;
     43                for(SmedPluggable p : plugins) {
     44                        panel = p.getComponent();
     45                        tabbedPane.addTab(p.getName(),icon, panel, p.getInfo());
     46                        tabbedPane.setMnemonicAt(i, KeyEvent.VK_1 + i);
     47                       
     48                        i++;
     49                }
    6850
    6951        //Add the tabbed pane to this panel.
     
    7355        tabbedPane.setTabLayoutPolicy(JTabbedPane.SCROLL_TAB_LAYOUT);
    7456    }
    75 
    76     private JComponent makeTextPanel(String text) {
    77         JPanel panel = new JPanel(false);
    78         JLabel filler = new JLabel(text);
    79         filler.setHorizontalAlignment(JLabel.CENTER);
    80         panel.setLayout(new GridLayout(1, 1));
    81         panel.add(filler);
    82 
    83         return panel;
    84     }
    8557}
Note: See TracChangeset for help on using the changeset viewer.