/** * Copyright (c) 2009 Juwi MacMillan Group GmbH * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package de.juwimm.cms.gui.admin; import static de.juwimm.cms.common.Constants.*; import java.awt.BorderLayout; import java.awt.Cursor; import javax.swing.JPanel; import javax.swing.JTabbedPane; import javax.swing.SwingUtilities; import javax.swing.event.ChangeEvent; import javax.swing.event.ChangeListener; import org.apache.log4j.Logger; import de.juwimm.cms.gui.controls.ReloadablePanel; import de.juwimm.cms.gui.controls.UnloadablePanel; import de.juwimm.cms.util.ActionHub; /** * <p>Title: juwimm cms</p> * <p>Description: content management system</p> * <p>Copyright: Copyright (c) 2002</p> * <p>Company: juwi macmillan group gmbh</p> * @author Dirk Bogun * @version $Id$ */ public class PanAdministrationAdmin extends JPanel implements UnloadablePanel { private static Logger log = Logger.getLogger(PanAdministrationAdmin.class); private JTabbedPane panTab = new JTabbedPane(); private PanUser panUser; private PanUnitGroupPerUser panUserUnits = null; public PanAdministrationAdmin() { try { jbInit(); } catch (Exception exe) { log.error("Initialization Error", exe); } } void jbInit() throws Exception { this.setLayout(new BorderLayout()); panUser = new PanUser(); if (panUserUnits != null) { ActionHub.removeActionListener(panUserUnits); } panUserUnits = new PanUnitGroupPerUser(); ActionHub.addActionListener(panUserUnits); panTab.add(panUser, rb.getString("panel.admin.tab.user")); panTab.add(panUserUnits, rb.getString("panel.admin.tab.unitUser")); panTab.setSelectedIndex(panTab.indexOfTab(rb.getString("panel.admin.tab.user"))); /* Change the Tab in panel */ panTab.addChangeListener(new ChangeListener() { //int lastIndex = 0; private int lastIndex = panTab.indexOfTab(rb.getString("panel.admin.tab.user")); public void stateChanged(ChangeEvent e) { SwingUtilities.invokeLater(new Runnable() { public void run() { setCursor(new Cursor(Cursor.WAIT_CURSOR)); String strTabName = panTab.getTitleAt(panTab.getSelectedIndex()); if (strTabName.equals(rb.getString("panel.admin.tab.user"))) { if (lastIndex == panTab.indexOfTab(rb.getString("panel.admin.tab.unitUser"))) { panUserUnits.unload(); } panUser.reload(); lastIndex = panTab.indexOfTab(rb.getString("panel.admin.tab.user")); } else if (strTabName.equals(rb.getString("panel.admin.tab.unitUser"))) { if (lastIndex == panTab.indexOfTab(rb.getString("panel.admin.tab.user"))) { panUser.unload(); } panUserUnits.reload(); lastIndex = panTab.indexOfTab(rb.getString("panel.admin.tab.unitUser")); } setCursor(Cursor.getDefaultCursor()); } }); } }); this.add(panTab, BorderLayout.CENTER); } public void reload() throws Exception { ReloadablePanel rpan = (ReloadablePanel) panTab.getSelectedComponent(); rpan.reload(); } public void unload() { panUser.unload(); panUserUnits.unload(); } }