public String addTab(String tabTitle, Bean<Configuration> configuration) {
   Tab tab =
       new Tab(
           this,
           redrawThread,
           ConfigurationManager.getGlobalConfiguration().getEditorFont(),
           configuration);
   for (UserInterfaceListener listener : listeners) {
     if (listener.getPanelPaintDeviceListener() != null) {
       tab.addPanelPaintDeviceListener(listener.getPanelPaintDeviceListener());
     }
   }
   String uniqueTitle = tabbedPane.addTab(tab, tabTitle);
   currentTab().layout(configuration.getDataObject().isVerticallySplit() ? 1 : 0);
   enableComponents();
   return uniqueTitle;
 }
 protected void fireCurrentTabClosing() {
   for (UserInterfaceListener listener : listeners) {
     listener.currentTabClosing();
   }
 }
 public void fireHyperlinkClicked(String hyperlink) {
   for (UserInterfaceListener listener : listeners) {
     listener.hyperlinkClicked(hyperlink);
   }
 }
 protected void fireCodeChanged(final boolean checkSyntaxOnly) {
   for (UserInterfaceListener listener : listeners) {
     listener.codeChanged(checkSyntaxOnly);
   }
 }