1 /* 2 * Copyright (c) 2021 Huawei Device Co., Ltd. 3 * Licensed under the Apache License, Version 2.0 (the "License"); 4 * you may not use this file except in compliance with the License. 5 * You may obtain a copy of the License at 6 * 7 * http://www.apache.org/licenses/LICENSE-2.0 8 * 9 * Unless required by applicable law or agreed to in writing, software 10 * distributed under the License is distributed on an "AS IS" BASIS, 11 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 * See the License for the specific language governing permissions and 13 * limitations under the License. 14 */ 15 16 package ohos.devtools.views.layout; 17 18 import com.intellij.openapi.util.IconLoader; 19 import com.intellij.ui.JBColor; 20 import com.intellij.ui.components.JBLabel; 21 import com.intellij.ui.components.JBLayeredPane; 22 import com.intellij.ui.components.JBPanel; 23 import net.miginfocom.swing.MigLayout; 24 import ohos.devtools.datasources.utils.plugin.service.PlugManager; 25 import ohos.devtools.datasources.utils.profilerlog.ProfilerLogManager; 26 import ohos.devtools.datasources.utils.quartzmanager.QuartzManager; 27 import ohos.devtools.datasources.utils.session.service.SessionManager; 28 import ohos.devtools.views.common.Constant; 29 import ohos.devtools.views.common.LayoutConstants; 30 import ohos.devtools.views.common.UtConstant; 31 import ohos.devtools.views.common.customcomp.GraphicsLinePanel; 32 import ohos.devtools.views.layout.chartview.ProfilerChartsView; 33 import ohos.devtools.views.layout.utils.EventTrackUtils; 34 import ohos.devtools.views.layout.utils.OpenFileDialogUtils; 35 import org.apache.logging.log4j.LogManager; 36 import org.apache.logging.log4j.Logger; 37 38 import javax.swing.BorderFactory; 39 import javax.swing.JButton; 40 import java.awt.BorderLayout; 41 import java.awt.Color; 42 import java.awt.Component; 43 import java.awt.Dimension; 44 import java.awt.Font; 45 import java.awt.GridLayout; 46 import java.awt.event.FocusEvent; 47 import java.awt.event.MouseEvent; 48 import java.awt.event.MouseListener; 49 import java.util.Objects; 50 51 import static ohos.devtools.views.common.Constant.DEVICE_REFRESH; 52 53 /** 54 * TaskPanel 55 * 56 * @since 2021/11/22 57 */ 58 public class TaskPanel extends JBLayeredPane implements MouseListener { 59 private static final Logger LOGGER = LogManager.getLogger(TaskPanel.class); 60 private static final String TAB_STR = "NewTask-Configure"; 61 private static final String TAB_CLOSE_STR = "x"; 62 private static final String TAB_ADD_STR = "+"; 63 private static final String TASK_SCENE_STR = "Task scene"; 64 private static final String TASK_SCENE_TIP_STR = "Choose the most suitable scene."; 65 private static final String CHOOSE_BTN_STR = "Choose"; 66 private static final String OPEN_FILE_STR = "Open File"; 67 private static final String APPLICATION_TITLE_STR = "Application Tuning"; 68 private static final String SYSTEM_TITLE_STR = "System Tuning"; 69 private static final String DISTRIBUTED_TITLE_STR = "Distributed Scenario"; 70 private static final String APPLICATION_TIP_STR = "<html>Application Tuning<br/><br/>" 71 + "Use the performance profiler to check the CPU,memory,network and energy status of the application</html>"; 72 private static final String SYSTEM_TIP_STR = "<html>System Tuning<br/><br/>" 73 + "Collect system-wide performance traces from Harmony devices from a variety of data sources</html>"; 74 private static final String DISTRIBUTED_TIP_STR = 75 "<html>Distributed Scenario<br/><br/>" + "Collect performance data for distributed scenarios</html>"; 76 private static final String GPU_TIP_STR = 77 "<html>GPU Counter<br/><br/>" + "Collect performance data for GPU Counter</html>"; 78 79 private JBPanel parentPanel; 80 private JBPanel welcomePanel; 81 private JBPanel tabPanel; 82 private JBPanel tabLeftPanel; 83 private JBPanel tabRightPanel; 84 private JBLabel tabText; 85 private JBLabel tabCloseBtn; 86 private JButton tabAddBtn; 87 private JBPanel tabContainer; 88 private JBPanel tabItem; 89 private JBLabel taskSceneLabel; 90 private JBLabel taskSceneLabelTip; 91 private JBLabel applicationBtn; 92 private JBLabel systemBtn; 93 private JBLabel distributedBtn; 94 private JBLabel tipIconLabel; 95 private JBLabel tipInfoLabel; 96 private JButton chooseBtn; 97 private JButton openFileBtn; 98 private JBPanel btnPanel; 99 private GraphicsLinePanel graphicsLineUp; 100 private GraphicsLinePanel graphicsLineDown; 101 private Long localSessionId; 102 103 /** 104 * Task Panel 105 */ TaskPanel()106 public TaskPanel() { 107 super(); 108 } 109 110 /** 111 * Task Panel 112 * 113 * @param containerPanel JBPanel 114 * @param welcomePanel WelcomePanel 115 */ TaskPanel(JBPanel containerPanel, WelcomePanel welcomePanel)116 public TaskPanel(JBPanel containerPanel, WelcomePanel welcomePanel) { 117 EventTrackUtils.getInstance().trackTaskPage(); 118 parentPanel = containerPanel; 119 this.welcomePanel = welcomePanel; 120 initComponents(); 121 initTab(containerPanel); 122 initTaskSceneItems(); 123 addEventListener(); 124 } 125 126 /** 127 * initComponents 128 */ initComponents()129 private void initComponents() { 130 if (ProfilerLogManager.isInfoEnabled()) { 131 LOGGER.info("initComponents"); 132 } 133 // init tabPanel 134 tabPanel = new JBPanel(); 135 tabLeftPanel = new JBPanel(); 136 tabRightPanel = new JBPanel(); 137 tabRightPanel.setName(UtConstant.UT_TASK_PANEL_CLOSE); 138 tabText = new JBLabel(TAB_STR); 139 tabCloseBtn = new JBLabel(TAB_CLOSE_STR); 140 tabAddBtn = new JButton(TAB_ADD_STR); 141 // init tab 142 tabContainer = new JBPanel(new BorderLayout()); 143 tabContainer.setOpaque(true); 144 tabContainer.setBackground(JBColor.background().darker()); 145 tabItem = new JBPanel(); 146 // init items 147 taskSceneLabel = new JBLabel(TASK_SCENE_STR); 148 taskSceneLabelTip = new JBLabel(TASK_SCENE_TIP_STR); 149 applicationBtn = new JBLabel(IconLoader.getIcon("/images/application_tuning.png", getClass())); 150 systemBtn = new JBLabel(IconLoader.getIcon("/images/system_tuning.png", getClass())); 151 distributedBtn = new JBLabel(IconLoader.getIcon("/images/distributed_scenario.png", getClass())); 152 tipIconLabel = new JBLabel(IconLoader.getIcon("/images/application_tuning.png", getClass())); 153 tipInfoLabel = new JBLabel(APPLICATION_TIP_STR); 154 graphicsLineUp = new GraphicsLinePanel(); 155 graphicsLineDown = new GraphicsLinePanel(); 156 chooseBtn = new JButton(CHOOSE_BTN_STR); 157 openFileBtn = new JButton(OPEN_FILE_STR); 158 } 159 160 /** 161 * setTabAttributes 162 * 163 * @param containerPanel containerPanel 164 */ initTab(JBPanel containerPanel)165 private void initTab(JBPanel containerPanel) { 166 if (ProfilerLogManager.isInfoEnabled()) { 167 LOGGER.info("initTab"); 168 } 169 setPanelData(); 170 containerPanel.setLayout(new BorderLayout()); 171 tabAddBtn.setFont(new Font(Font.DIALOG, Font.PLAIN, LayoutConstants.DEVICES_HEIGHT)); 172 tabAddBtn.setBorderPainted(false); 173 tabAddBtn.setBounds(LayoutConstants.NUMBER_X_ADD * Constant.jtasksTab.getTabCount(), LayoutConstants.NUMBER_Y, 174 LayoutConstants.BUTTON_HEIGHT, LayoutConstants.BUTTON_HEIGHT); 175 Constant.jtasksTab.setBounds(0, 0, containerPanel.getWidth(), containerPanel.getHeight()); 176 this.add(Constant.jtasksTab); 177 containerPanel.add(this); 178 double result = Constant.jtasksTab.getTabCount() * LayoutConstants.NUMBER_X; 179 if (result > containerPanel.getWidth()) { 180 for (int index = 0; index < Constant.jtasksTab.getTabCount(); index++) { 181 Object tabObj = Constant.jtasksTab.getTabComponentAt(index); 182 if (tabObj instanceof JBPanel) { 183 ((JBPanel) tabObj).getComponents()[0].setPreferredSize(new Dimension( 184 (((containerPanel.getWidth() - LayoutConstants.MEMORY_WIDTH) / Constant.jtasksTab.getTabCount()) 185 - LayoutConstants.TASK_DEC_NUM) - LayoutConstants.JAVA_HEIGHT, 186 LayoutConstants.JAVA_HEIGHT)); 187 } 188 Constant.jtasksTab.getTabComponentAt(index).setPreferredSize(new Dimension( 189 ((containerPanel.getWidth() - LayoutConstants.MEMORY_WIDTH) / Constant.jtasksTab.getTabCount()) 190 - LayoutConstants.TASK_DEC_NUM, LayoutConstants.JAVA_HEIGHT)); 191 tabAddBtn.setBounds(containerPanel.getWidth() - LayoutConstants.TASK_LABEL_X, LayoutConstants.NUMBER_Y, 192 LayoutConstants.BUTTON_HEIGHT, LayoutConstants.BUTTON_HEIGHT); 193 } 194 } 195 } 196 197 /** 198 * setPanelData 199 */ setPanelData()200 private void setPanelData() { 201 if (ProfilerLogManager.isInfoEnabled()) { 202 LOGGER.info("setPanelData"); 203 } 204 tabItem.setLayout(new MigLayout("insets 0", "[grow,fill]", "15[fill,fill]20[]push[][][]20[]")); 205 tabPanel.setOpaque(false); 206 tabPanel.setPreferredSize(new Dimension(LayoutConstants.JPA_LABEL_WIDTH, LayoutConstants.DEVICES_HEIGHT)); 207 tabLeftPanel.setOpaque(false); 208 tabLeftPanel.setLayout(null); 209 tabLeftPanel.setPreferredSize(new Dimension(LayoutConstants.JP_LEFT_WIDTH, LayoutConstants.JP_LEFT_HEIGHT)); 210 tabRightPanel.setOpaque(false); 211 tabRightPanel.setLayout(new GridLayout()); 212 tabRightPanel.setPreferredSize(new Dimension(LayoutConstants.JP_RIGHT_WIDTH, LayoutConstants.JP_RIGHT_HEIGHT)); 213 tabPanel.setLayout(new BorderLayout()); 214 tabPanel.add(tabLeftPanel, BorderLayout.WEST); 215 tabPanel.add(tabRightPanel, BorderLayout.CENTER); 216 tabText.setBounds(0, 0, LayoutConstants.JP_SET_WIDTH, LayoutConstants.JP_SET_HEIGHT); 217 tabLeftPanel.add(tabText); 218 tabRightPanel.add(tabCloseBtn); 219 tabCloseBtn.setHorizontalAlignment(JBLabel.RIGHT); 220 tabCloseBtn.setName(TAB_CLOSE_STR); 221 tipIconLabel 222 .setBounds(LayoutConstants.DEVICES_X, LayoutConstants.DESCRIPTION_NUMBER, LayoutConstants.HIGTHSCEECS, 223 LayoutConstants.HIGTHSCEECS); 224 tipInfoLabel 225 .setBounds(LayoutConstants.JAVA_WIDTH, LayoutConstants.DESCRIPTION_NUMBER, LayoutConstants.APP_LABEL_WIDTH, 226 LayoutConstants.JLABEL_SIZE); 227 Font fontTaskTun = new Font(Font.DIALOG, Font.BOLD, LayoutConstants.TUN_LABEL_FONT); 228 tipInfoLabel.setFont(fontTaskTun); 229 tabContainer.add(tabItem); 230 Constant.jtasksTab.addTab("TaskTab", tabContainer); 231 Constant.jtasksTab.setTabComponentAt(Constant.jtasksTab.indexOfComponent(tabContainer), tabPanel); 232 } 233 234 /** 235 * init TaskScene Items 236 */ initTaskSceneItems()237 private void initTaskSceneItems() { 238 if (ProfilerLogManager.isInfoEnabled()) { 239 LOGGER.info("initTaskSceneItems"); 240 } 241 setButtonAttr(); 242 setApplicationBtnData(); 243 setSystemBtnData(); 244 distributedBtn.setText(DISTRIBUTED_TITLE_STR); 245 distributedBtn.setName(UtConstant.UT_TASK_PANEL_DISTRIBUTED); 246 distributedBtn.setPreferredSize(new Dimension(210, 155)); 247 distributedBtn.setFont(new Font(Font.DIALOG, Font.PLAIN, 14)); 248 distributedBtn.setVerticalTextPosition(JBLabel.BOTTOM); 249 distributedBtn.setHorizontalTextPosition(JBLabel.CENTER); 250 distributedBtn.setOpaque(true); 251 distributedBtn.setBackground(JBColor.background()); 252 JBPanel taskScenePanel = new JBPanel(new MigLayout("insets 0")); 253 taskScenePanel.setOpaque(false); 254 taskScenePanel.add(taskSceneLabel, "gap 15"); 255 taskScenePanel.add(taskSceneLabelTip); 256 JBPanel sceneButtonPanel = new JBPanel(new MigLayout("insets 0")); 257 sceneButtonPanel.add(applicationBtn, "gap 15"); 258 sceneButtonPanel.add(systemBtn, "gap 15"); 259 sceneButtonPanel.setOpaque(false); 260 sceneButtonPanel.add(distributedBtn, "gap 15"); 261 JBPanel tipPanel = new JBPanel(new MigLayout("insets 0")); 262 tipPanel.add(tipIconLabel, "gap 30"); 263 tipPanel.add(tipInfoLabel); 264 tipPanel.setOpaque(false); 265 btnPanel = new JBPanel(new MigLayout("insets 0", "push[]15[]15", "[fill, fill]")); 266 btnPanel.add(openFileBtn); 267 btnPanel.add(chooseBtn); 268 btnPanel.setOpaque(false); 269 tabItem.add(taskScenePanel, "wrap, height 30!"); 270 tabItem.add(sceneButtonPanel, "wrap, height 150!"); 271 tabItem.add(graphicsLineUp, "wrap, height 10!, gapx 15 15"); 272 tabItem.add(tipPanel, "wrap"); 273 tabItem.add(graphicsLineDown, "wrap, height 10!, gapy 10, gapx 15 15"); 274 tabItem.add(btnPanel, "wrap, span, height 40!"); 275 tabItem.setOpaque(true); 276 tabItem.setBackground(JBColor.background().darker()); 277 } 278 279 /** 280 * setSystemBtnData 281 */ setSystemBtnData()282 private void setSystemBtnData() { 283 if (ProfilerLogManager.isInfoEnabled()) { 284 LOGGER.info("setSystemBtnData"); 285 } 286 systemBtn.setText(SYSTEM_TITLE_STR); 287 systemBtn.setName(UtConstant.UT_TASK_PANEL_SYSTEM); 288 systemBtn.setPreferredSize(new Dimension(210, 155)); 289 systemBtn.setFont(new Font(Font.DIALOG, Font.PLAIN, 14)); 290 systemBtn.setVerticalTextPosition(JBLabel.BOTTOM); 291 systemBtn.setHorizontalTextPosition(JBLabel.CENTER); 292 systemBtn.setOpaque(true); 293 systemBtn.setBackground(JBColor.background()); 294 } 295 296 /** 297 * setApplicationBtnData 298 */ setApplicationBtnData()299 private void setApplicationBtnData() { 300 if (ProfilerLogManager.isInfoEnabled()) { 301 LOGGER.info("setApplicationBtnData"); 302 } 303 taskSceneLabel.setFont(new Font(Font.DIALOG, Font.BOLD, 24)); 304 taskSceneLabel.setForeground(JBColor.foreground().brighter()); 305 taskSceneLabelTip.setFont(new Font(Font.DIALOG, Font.PLAIN, 14)); 306 applicationBtn.setText(APPLICATION_TITLE_STR); 307 applicationBtn.setName(UtConstant.UT_TASK_PANEL_APPLICATION); 308 applicationBtn.setPreferredSize(new Dimension(210, 155)); 309 applicationBtn.setFont(new Font(Font.DIALOG, Font.PLAIN, 14)); 310 applicationBtn.setVerticalTextPosition(JBLabel.BOTTOM); 311 applicationBtn.setHorizontalTextPosition(JBLabel.CENTER); 312 applicationBtn.setOpaque(true); 313 applicationBtn.setBackground(JBColor.background()); 314 applicationBtn.setForeground(JBColor.foreground().brighter()); 315 applicationBtn.setBorder(BorderFactory.createLineBorder(new Color(0, 117, 255), 2)); 316 } 317 318 /** 319 * addEventListener 320 */ addEventListener()321 private void addEventListener() { 322 tabCloseBtn.addMouseListener(this); 323 applicationBtn.addMouseListener(this); 324 systemBtn.addMouseListener(this); 325 distributedBtn.addMouseListener(this); 326 openFileBtn.addMouseListener(this); 327 chooseBtn.addMouseListener(this); 328 } 329 330 /** 331 * setButtonAttr 332 */ setButtonAttr()333 private void setButtonAttr() { 334 chooseBtn.setName(UtConstant.UT_TASK_PANEL_CHOOSE); 335 chooseBtn.setFont(new Font(Font.DIALOG, Font.PLAIN, LayoutConstants.OPTION_FONT)); 336 chooseBtn.setFocusPainted(false); 337 chooseBtn.setOpaque(false); 338 chooseBtn.setPreferredSize(new Dimension(140, 40)); 339 openFileBtn.setName(UtConstant.UT_TASK_PANEL_OPEN_FILE); 340 openFileBtn.setFont(new Font(Font.DIALOG, Font.PLAIN, LayoutConstants.OPTION_FONT)); 341 openFileBtn.setOpaque(false); 342 openFileBtn.setFocusPainted(false); 343 openFileBtn.setPreferredSize(new Dimension(140, 40)); 344 } 345 346 @Override mouseClicked(MouseEvent mouseEvent)347 public void mouseClicked(MouseEvent mouseEvent) { 348 } 349 350 @Override mousePressed(MouseEvent mouseEvent)351 public void mousePressed(MouseEvent mouseEvent) { 352 } 353 354 @Override mouseReleased(MouseEvent mouseEvent)355 public void mouseReleased(MouseEvent mouseEvent) { 356 String name = mouseEvent.getComponent().getName(); 357 if (name.equals(APPLICATION_TITLE_STR)) { 358 tipInfoLabel.setText(APPLICATION_TIP_STR); 359 tipIconLabel.setIcon(IconLoader.getIcon("/images/application_tuning.png", getClass())); 360 applicationBtn.setBorder(BorderFactory.createLineBorder(new Color(0, 117, 255), 2)); 361 systemBtn.setBorder(null); 362 distributedBtn.setBorder(null); 363 applicationBtn.setForeground(JBColor.foreground().brighter()); 364 systemBtn.setForeground(JBColor.foreground()); 365 distributedBtn.setForeground(JBColor.foreground()); 366 } 367 if (name.equals(SYSTEM_TITLE_STR)) { 368 tipInfoLabel.setText(SYSTEM_TIP_STR); 369 tipIconLabel.setIcon(IconLoader.getIcon("/images/system_tuning.png", getClass())); 370 applicationBtn.setBorder(null); 371 systemBtn.setBorder(BorderFactory.createLineBorder(new Color(0, 117, 255), 2)); 372 distributedBtn.setBorder(null); 373 applicationBtn.setForeground(JBColor.foreground()); 374 systemBtn.setForeground(JBColor.foreground().brighter()); 375 distributedBtn.setForeground(JBColor.foreground()); 376 } 377 if (name.equals(DISTRIBUTED_TITLE_STR)) { 378 tipInfoLabel.setText(DISTRIBUTED_TIP_STR); 379 tipIconLabel.setIcon(IconLoader.getIcon("/images/distributed_scenario.png", getClass())); 380 applicationBtn.setBorder(null); 381 systemBtn.setBorder(null); 382 distributedBtn.setBorder(BorderFactory.createLineBorder(new Color(0, 117, 255), 2)); 383 applicationBtn.setForeground(JBColor.foreground()); 384 systemBtn.setForeground(JBColor.foreground()); 385 distributedBtn.setForeground(JBColor.foreground().brighter()); 386 } 387 mouseReleasedExtra(name); 388 } 389 390 /** 391 * mouseReleasedExtra 392 * 393 * @param name name 394 */ mouseReleasedExtra(String name)395 private void mouseReleasedExtra(String name) { 396 if (name.equals(CHOOSE_BTN_STR)) { 397 chooseBtn.dispatchEvent(new FocusEvent(chooseBtn, FocusEvent.FOCUS_GAINED, true)); 398 chooseBtn.requestFocusInWindow(); 399 tabItem.setVisible(false); 400 setTabContainer(); 401 tabContainer.repaint(); 402 } 403 if (name.equals(OPEN_FILE_STR)) { 404 OpenFileDialogUtils.getInstance().showFileOpenDialog(tabItem, this); 405 } 406 if (name.equals(TAB_CLOSE_STR)) { 407 removeAll(); 408 HomePanel.setTaskIsOpen(false); 409 Constant.jtasksTab.remove(Constant.jtasksTab.indexOfTabComponent(tabPanel)); 410 add(Constant.jtasksTab); 411 parentPanel.add(this); 412 parentPanel.repaint(); 413 Constant.jtasksTab.updateUI(); 414 if (Constant.jtasksTab.getTabCount() == 0) { 415 if (localSessionId != null && localSessionId != 0L) { 416 SessionManager sessionManager = SessionManager.getInstance(); 417 sessionManager.deleteSession(localSessionId); 418 } 419 removeAll(); 420 Constant.jtasksTab = null; 421 Component[] components = parentPanel.getComponents(); 422 for (Component item : components) { 423 if (item instanceof TaskPanel) { 424 parentPanel.remove(item); 425 } 426 } 427 welcomePanel.setVisible(true); 428 } 429 QuartzManager.getInstance().deleteExecutor(DEVICE_REFRESH); 430 PlugManager.getInstance().clearProfilerMonitorItemMap(); 431 ProfilerChartsView profilerChartsView = ProfilerChartsView.sessionMap.get(localSessionId); 432 if (Objects.nonNull(profilerChartsView)) { 433 profilerChartsView.getPublisher().stopRefresh(false); 434 } 435 } 436 } 437 438 /** 439 * setTabContainer 440 */ setTabContainer()441 private void setTabContainer() { 442 if (tipInfoLabel.getText().contains(APPLICATION_TITLE_STR)) { 443 ApplicationConfigPanel taskScenePanel = new ApplicationConfigPanel(this); 444 tabContainer.setLayout(new BorderLayout()); 445 tabContainer.setOpaque(true); 446 tabContainer.setBackground(JBColor.background().darker()); 447 tabContainer.add(taskScenePanel); 448 } else if (tipInfoLabel.getText().contains(SYSTEM_TITLE_STR)) { 449 SystemConfigPanel configPanel = new SystemConfigPanel(this); 450 tabContainer.setLayout(new BorderLayout()); 451 tabContainer.setOpaque(true); 452 tabContainer.setBackground(JBColor.background().darker()); 453 tabContainer.add(configPanel); 454 } else if (tipInfoLabel.getText().contains(DISTRIBUTED_TITLE_STR)) { 455 DistributedConfigPanel configPanel = new DistributedConfigPanel(this); 456 tabContainer.setLayout(new BorderLayout()); 457 tabContainer.setOpaque(true); 458 tabContainer.setBackground(JBColor.background().darker()); 459 tabContainer.add(configPanel); 460 } else { 461 // Distributed Scenario 462 tabItem.setVisible(true); 463 } 464 } 465 466 @Override mouseEntered(MouseEvent mouseEvent)467 public void mouseEntered(MouseEvent mouseEvent) { 468 } 469 470 @Override mouseExited(MouseEvent mouseEvent)471 public void mouseExited(MouseEvent mouseEvent) { 472 } 473 getTabCloseBtn()474 public JBLabel getTabCloseBtn() { 475 return tabCloseBtn; 476 } 477 478 /** 479 * getChooseButton 480 * 481 * @return JButton 482 */ getChooseButton()483 public JButton getChooseButton() { 484 return chooseBtn; 485 } 486 getTabContainer()487 public JBPanel getTabContainer() { 488 return tabContainer; 489 } 490 getTabItem()491 public JBPanel getTabItem() { 492 return tabItem; 493 } 494 getTabRightPanel()495 public JBPanel getTabRightPanel() { 496 return tabRightPanel; 497 } 498 getTabLeftPanel()499 public JBPanel getTabLeftPanel() { 500 return tabLeftPanel; 501 } 502 getTabAddBtn()503 public JButton getTabAddBtn() { 504 return tabAddBtn; 505 } 506 getBtnPanel()507 public JBPanel getBtnPanel() { 508 return btnPanel; 509 } 510 setLocalSessionId(Long localSessionId)511 public void setLocalSessionId(Long localSessionId) { 512 this.localSessionId = localSessionId; 513 } 514 getLocalSessionId()515 public Long getLocalSessionId() { 516 return localSessionId; 517 } 518 } 519