001package jmri.jmrit.beantable; 002 003import java.awt.BorderLayout; 004import java.util.List; 005 006import javax.annotation.Nonnull; 007import javax.swing.event.ChangeEvent; 008import javax.swing.JPanel; 009import javax.swing.JTabbedPane; 010import jmri.*; 011 012public class IdTagTableTabAction extends AbstractTableTabAction<IdTag> { 013 014 public IdTagTableTabAction(String s) { 015 super(s); 016 } 017 018 public IdTagTableTabAction() { 019 this("Multiple Tabbed"); 020 } 021 022 /** {@inheritDoc} */ 023 @Override 024 @Nonnull 025 protected Manager<IdTag> getManager() { 026 return InstanceManager.getDefault(IdTagManager.class); 027 } 028 029 /** {@inheritDoc} */ 030 @Override 031 protected String getClassName() { 032 return IdTagTableAction.class.getName(); 033 } 034 035 /** {@inheritDoc} */ 036 @Override 037 protected IdTagTableAction getNewTableAction(String choice) { 038 return new IdTagTableAction(choice); 039 } 040 041 /** {@inheritDoc} */ 042 @Override 043 protected String helpTarget() { 044 return "package.jmri.jmrit.beantable.IdTagTable"; 045 } 046 047 @Override 048 protected void createModel() { 049 dataPanel = new JPanel(); 050 dataTabs = new JTabbedPane(); 051 dataPanel.setLayout(new BorderLayout()); 052 if (getManager() instanceof jmri.managers.AbstractProxyManager) { 053 // build the list, with default at start and internal at end (if present) 054 jmri.managers.AbstractProxyManager<IdTag> proxy = (jmri.managers.AbstractProxyManager<IdTag>) getManager(); 055 056 tabbedTableArray.add(new TabbedTableItem<>(Bundle.getMessage("All"), true, getManager(), getNewTableAction("All"))); // NOI18N 057 058 List<jmri.Manager<IdTag>> managerList = proxy.getDisplayOrderManagerList(); 059 for (Manager<IdTag> manager : managerList) { 060 String manuName = manager.getMemo().getUserName(); 061 if (manuName == null && (manager instanceof jmri.managers.DefaultRailComManager)) { 062 manuName = "RailCom"; // NOI18N (proper name). 063 } 064 TabbedTableItem<IdTag> itemModel = new TabbedTableItem<>(manuName, true, manager, getNewTableAction(manuName)); // connection name to display in Tab 065 tabbedTableArray.add(itemModel); 066 } 067 068 } else { 069 String manuName = getManager().getMemo().getUserName(); 070 tabbedTableArray.add(new TabbedTableItem<>(manuName, true, getManager(), getNewTableAction(manuName))); 071 } 072 for (int x = 0; x < tabbedTableArray.size(); x++) { 073 AbstractTableAction<IdTag> table = tabbedTableArray.get(x).getAAClass(); 074 table.addToPanel(this); 075 dataTabs.addTab(tabbedTableArray.get(x).getItemString(), null, tabbedTableArray.get(x).getPanel(), null); 076 } 077 dataTabs.addChangeListener((ChangeEvent evt) -> { 078 setMenuBar(f); 079 }); 080 dataPanel.add(dataTabs, BorderLayout.CENTER); 081 init = true; 082 } 083 084}