1 14 package org.compiere.model; 15 16 import java.io.Serializable ; 17 import java.util.ArrayList ; 18 19 import org.compiere.plaf.CompiereColor; 20 import org.compiere.util.Log; 21 22 28 public final class MWindow implements Serializable 29 { 30 34 public MWindow (MWindowVO vo) 35 { 36 m_vo = vo; 37 if (loadTabData()) 38 enableEvents(); 39 } 41 42 private MWindowVO m_vo; 43 private ArrayList m_tabs = new ArrayList (); 45 46 47 48 51 public void dispose() 52 { 53 Log.trace(Log.l2_Sub, "MWindow.dispose - " + m_vo.AD_Window_ID); 54 for (int i = 0; i < getTabCount(); i++) 55 getTab(i).dispose(); 56 m_tabs.clear(); 57 m_tabs = null; 58 } 60 65 public void loadCompete () 66 { 67 for (int i = 0; i < getTabCount(); i++) 69 getTab(i).getMTable().loadComplete(); 70 } 72 76 private boolean loadTabData() 77 { 78 Log.trace(Log.l3_Util, "MWindow.loadTabData"); 79 80 if (m_vo.Tabs == null) 81 return false; 82 83 for (int t = 0; t < m_vo.Tabs.size(); t++) 84 { 85 MTabVO mTabVO = (MTabVO)m_vo.Tabs.get(t); 86 if (mTabVO != null) 87 { 88 MTab mTab = new MTab(mTabVO); 89 if (mTab.getLinkColumnName().length() == 0) 91 { 92 ArrayList parents = mTab.getParentColumnNames(); 93 if (parents.size() == 0) 95 ; 96 else if (parents.size() == 1) 98 mTab.setLinkColumnName((String )parents.get(0)); 99 else 100 { 101 for (int i = 0; i < m_tabs.size(); i++) 105 { 106 MTab tab = (MTab)m_tabs.get(i); 108 String tabKey = tab.getKeyColumnName(); for (int j = 0; j < parents.size(); j++) 111 { 112 String parent = (String )parents.get(j); 113 if (parent.equals(tabKey)) 114 { 115 mTab.setLinkColumnName(parent); 116 break; 117 } 118 if (tabKey.equals("")) 120 for (int k = 0; k < tab.getParentColumnNames().size(); k++) 121 if (parent.equals(tab.getParentColumnNames().get(k))) 122 { 123 mTab.setLinkColumnName(parent); 124 break; 125 } 126 } } } } mTab.setLinkColumnName(null); m_tabs.add(mTab); 133 } 134 } return true; 136 } 138 142 public javax.swing.Icon getIcon() 143 { 144 if (m_vo.AD_Image_ID == 0) 145 return null; 146 148 return null; 149 } 151 155 public CompiereColor getColor() 156 { 157 if (m_vo.AD_Color_ID == 0) 158 return null; 159 MColor mc = new MColor(m_vo.ctx, m_vo.AD_Color_ID); 160 return mc.getCompiereColor(); 161 } 163 166 public void query() 167 { 168 Log.trace(Log.l2_Sub, "MWindow.open"); 169 MTab tab = getTab(0); 170 tab.query(false, 1); 171 if (tab.getRowCount() > 0) 172 tab.navigate(0); 173 } 175 178 private void enableEvents() 179 { 180 for (int i = 0; i < getTabCount(); i++) 181 getTab(i).enableEvents(); 182 } 184 188 public int getTabCount() 189 { 190 return m_tabs.size(); 191 } 193 198 public MTab getTab (int i) 199 { 200 if (i < 0 || i+1 > m_tabs.size()) 201 return null; 202 return (MTab)m_tabs.get(i); 203 } 205 209 public int getAD_Window_ID() 210 { 211 return m_vo.AD_Window_ID; 212 } 214 218 public int getWindowNo() 219 { 220 return m_vo.WindowNo; 221 } 223 227 public String getName() 228 { 229 return m_vo.Name; 230 } 232 236 public String getDescription() 237 { 238 return m_vo.Description; 239 } 241 245 public String getHelp() 246 { 247 return m_vo.Help; 248 } 250 254 public String getWindowType() 255 { 256 return m_vo.WindowType; 257 } 259 263 public boolean isTransaction() 264 { 265 return m_vo.WindowType.equals(MWindowVO.WINDOWTYPE_TRX); 266 } 268 272 public String toString() 273 { 274 return "MWindow[" + m_vo.WindowNo + "," + m_vo.Name + " (" + m_vo.AD_Window_ID + ")]"; 275 } 277 } | Popular Tags |