1 19 20 package org.lucane.applications.administrator.gui; 21 22 import java.awt.*; 23 import java.awt.event.*; 24 import java.util.ArrayList ; 25 26 import javax.swing.*; 27 import javax.swing.event.*; 28 29 import org.lucane.client.Client; 30 import org.lucane.client.widgets.DialogBox; 31 import org.lucane.common.concepts.*; 32 import org.lucane.applications.administrator.AdministratorPlugin; 33 34 class ConceptListPanel extends JPanel 35 implements ActionListener 36 { 37 private transient AdministratorPlugin plugin; 38 private ConceptPanel panel; 39 40 private JButton refresh; 41 private JButton create; 42 private JComboBox conceptsTypes; 43 private ConceptTable concepts; 44 45 private String [] types; 46 47 public ConceptListPanel(AdministratorPlugin plugin, ConceptPanel panel) 48 { 49 super(new BorderLayout()); 50 this.plugin = plugin; 51 this.panel = panel; 52 53 types = new String []{tr("users"), tr("groups"), tr("plugins"), tr("services")}; 54 55 JPanel top = new JPanel(new BorderLayout()); 57 JPanel temp = new JPanel(new BorderLayout()); 58 59 try { 60 refresh = new JButton(Client.getImageIcon("refresh.png")); 61 } catch(Exception e) { 62 refresh = new JButton("R"); 63 } 64 refresh.setToolTipText(tr("btn.refresh")); 65 refresh.addActionListener(this); 66 create = new JButton(tr("btn.new")); 67 create.addActionListener(this); 68 conceptsTypes = new JComboBox(types); 69 conceptsTypes.addActionListener(this); 70 temp.add(conceptsTypes, BorderLayout.CENTER); 71 temp.add(refresh, BorderLayout.EAST); 72 top.add(temp, BorderLayout.CENTER); 73 top.add(create, BorderLayout.EAST); 74 75 concepts = new ConceptTable(plugin, tr("concepts")); 77 this.add(top, BorderLayout.NORTH); 78 this.add(new JScrollPane(concepts), BorderLayout.CENTER); 79 80 this.refresh(); 82 } 83 84 public void refresh() 85 { 86 ArrayList data; 87 88 switch(conceptsTypes.getSelectedIndex()) 89 { 90 case 0: 91 data = plugin.getAllUsers(true); 92 break; 93 case 1: 94 data = plugin.getAllGroups(true); 95 break; 96 case 2: 97 data = plugin.getAllPlugins(true); 98 break; 99 case 3: 100 data = plugin.getAllServices(true); 101 break; 102 default: 103 data = plugin.getAllGroups(true); 104 } 105 106 concepts.setConcepts(data); 107 } 108 109 public void actionPerformed(ActionEvent e) 110 { 111 if(e.getSource().equals(create)) 112 { 113 String name = null; 114 Concept concept = null; 115 switch(conceptsTypes.getSelectedIndex()) 116 { 117 case 0: name = DialogBox.input(plugin.getTitle(), tr("msg.new.user")); 119 if(name != null) 120 { 121 concept = new UserConcept(name, "password", name, "", 122 Client.getInstance().getConfig().getLanguage(), false, 123 "org.lucane.applications.quicklaunch"); 124 } 125 break; 126 case 1: name = DialogBox.input(plugin.getTitle(), tr("msg.new.group")); 128 if(name != null) 129 concept = new GroupConcept(name); 130 break; 131 case 2: name = DialogBox.input(plugin.getTitle(), tr("msg.new.plugin")); 133 if(name != null) 134 concept = new PluginConcept(name, "version"); 135 break; 136 case 3: name = DialogBox.input(plugin.getTitle(), tr("msg.new.service")); 138 if(name != null) 139 concept = new ServiceConcept(name, false); 140 break; 141 } 142 if(concept != null) 143 { 144 plugin.storeConcept(concept); 145 panel.showConcept(concept); 146 } 147 } 148 149 refresh(); 150 } 151 152 public void addListSelectionListener(ListSelectionListener lsl) 153 { 154 concepts.getSelectionModel().addListSelectionListener(lsl); 155 } 156 157 public int getSelectedRow() 158 { 159 return concepts.getSelectedRow(); 160 } 161 162 public Concept getConceptAt(int row) 163 { 164 return concepts.getConceptAt(row); 165 } 166 167 private String tr(String s) 168 { 169 return plugin.tr(s); 170 } 171 } | Popular Tags |