public SourceViewer(JarStructure jarStructure) { super(); this.jarStructure = jarStructure; toolBar = new WebPanel(true, new ToolbarLayout()); toolBar.setDrawSides(false, false, true, false); toolBar.setShadeWidth(0); add(toolBar, BorderLayout.NORTH); classPath = new WebBreadcrumb(false); classPath.setEncloseLastElement(true); classPath.setElementMargin(4, 6, 4, 6); classPath.setOpaque(false); toolBar.add(classPath, ToolbarLayout.FILL); toolBar.add(createClassSearch(), ToolbarLayout.END); toolBar.add(createSettings(), ToolbarLayout.END); viewTabbedPane = new ViewTabbedPane(); viewTabbedPane.setTabbedPaneStyle(TabbedPaneStyle.attached); viewChangeListener = new ChangeListener() { @Override public void stateChanged(ChangeEvent e) { updateClassPath(viewTabbedPane.getSelectedEntry(), false); } }; viewTabbedPane.addChangeListener(viewChangeListener); viewTabbedPane.addViewListener( new ViewListener() { @Override public void viewOpened(JarEntry entry) { // } @Override public void viewClosed(JarEntry entry) { synchronized (activeEditorsLock) { // Removing opened editor activeEditors.remove(entry); } updateClassPath(viewTabbedPane.getSelectedEntry(), false); } }); HotkeyManager.registerHotkey( viewTabbedPane, Hotkey.ALT_LEFT, new HotkeyRunnable() { @Override public void run(KeyEvent e) { final int tabCount = viewTabbedPane.getTabCount(); if (tabCount > 0) { final int index = viewTabbedPane.getSelectedIndex(); viewTabbedPane.setSelectedIndex(index > 0 ? index - 1 : tabCount - 1); } } }); HotkeyManager.registerHotkey( viewTabbedPane, Hotkey.ALT_RIGHT, new HotkeyRunnable() { @Override public void run(KeyEvent e) { final int tabCount = viewTabbedPane.getTabCount(); if (tabCount > 0) { final int index = viewTabbedPane.getSelectedIndex(); viewTabbedPane.setSelectedIndex(index < tabCount - 1 ? index + 1 : 0); } } }); add(viewTabbedPane, BorderLayout.CENTER); updateClassPath(null, false); }