Program: 62049
Project: 62049
Buggy source:
@SuppressWarnings("String_Node_Str") public MainFrame(SWF swf){
  super();
  JRibbon rib=getRibbon();
  JRibbonBand editBand=new JRibbonBand(translate("String_Node_Str"),null);
  editBand.setResizePolicies((List)Arrays.asList(new CoreRibbonResizePolicies.Mirror(editBand.getControlPanel()),new IconRibbonBandResizePolicy(editBand.getControlPanel())));
  JCommandButton openCommandButton=new JCommandButton(fixCommandTitle(translate("String_Node_Str")),View.getResizableIcon("String_Node_Str"));
  assignListener(openCommandButton,"String_Node_Str");
  JCommandButton saveCommandButton=new JCommandButton(fixCommandTitle(translate("String_Node_Str")),View.getResizableIcon("String_Node_Str"));
  assignListener(saveCommandButton,"String_Node_Str");
  JCommandButton saveasCommandButton=new JCommandButton(fixCommandTitle(translate("String_Node_Str")),View.getResizableIcon("String_Node_Str"));
  assignListener(saveasCommandButton,"String_Node_Str");
  editBand.addCommandButton(openCommandButton,RibbonElementPriority.TOP);
  editBand.addCommandButton(saveCommandButton,RibbonElementPriority.TOP);
  editBand.addCommandButton(saveasCommandButton,RibbonElementPriority.TOP);
  JRibbonBand exportBand=new JRibbonBand(translate("String_Node_Str"),null);
  exportBand.setResizePolicies((List)Arrays.asList(new CoreRibbonResizePolicies.Mirror(exportBand.getControlPanel()),new IconRibbonBandResizePolicy(exportBand.getControlPanel())));
  JCommandButton exportFlaCommandButton=new JCommandButton(fixCommandTitle(translate("String_Node_Str")),View.getResizableIcon("String_Node_Str"));
  assignListener(exportFlaCommandButton,"String_Node_Str");
  JCommandButton exportAllCommandButton=new JCommandButton(fixCommandTitle(translate("String_Node_Str")),View.getResizableIcon("String_Node_Str"));
  assignListener(exportAllCommandButton,"String_Node_Str");
  JCommandButton exportSelectionCommandButton=new JCommandButton(fixCommandTitle(translate("String_Node_Str")),View.getResizableIcon("String_Node_Str"));
  assignListener(exportSelectionCommandButton,"String_Node_Str");
  exportBand.addCommandButton(exportFlaCommandButton,RibbonElementPriority.TOP);
  exportBand.addCommandButton(exportAllCommandButton,RibbonElementPriority.MEDIUM);
  exportBand.addCommandButton(exportSelectionCommandButton,RibbonElementPriority.MEDIUM);
  RibbonTask fileTask=new RibbonTask(translate("String_Node_Str"),editBand,exportBand);
  JRibbonBand toolsBand=new JRibbonBand(translate("String_Node_Str"),null);
  toolsBand.setResizePolicies((List)Arrays.asList(new CoreRibbonResizePolicies.Mirror(toolsBand.getControlPanel()),new IconRibbonBandResizePolicy(toolsBand.getControlPanel())));
  JCommandButton searchCommandButton=new JCommandButton(fixCommandTitle(translate("String_Node_Str")),View.getResizableIcon("String_Node_Str"));
  assignListener(searchCommandButton,"String_Node_Str");
  JCommandButton proxyCommandButton=new JCommandButton(fixCommandTitle(translate("String_Node_Str")),View.getResizableIcon("String_Node_Str"));
  assignListener(proxyCommandButton,"String_Node_Str");
  JCommandButton gotoDocumentClassCommandButton=new JCommandButton(fixCommandTitle(translate("String_Node_Str")),View.getResizableIcon("String_Node_Str"));
  assignListener(gotoDocumentClassCommandButton,"String_Node_Str");
  toolsBand.addCommandButton(searchCommandButton,RibbonElementPriority.TOP);
  toolsBand.addCommandButton(proxyCommandButton,RibbonElementPriority.TOP);
  toolsBand.addCommandButton(gotoDocumentClassCommandButton,RibbonElementPriority.TOP);
  JRibbonBand deobfuscationBand=new JRibbonBand(translate("String_Node_Str"),null);
  deobfuscationBand.setResizePolicies((List)Arrays.asList(new CoreRibbonResizePolicies.Mirror(deobfuscationBand.getControlPanel()),new IconRibbonBandResizePolicy(deobfuscationBand.getControlPanel())));
  JCommandButton deobfuscationCommandButton=new JCommandButton(fixCommandTitle(translate("String_Node_Str")),View.getResizableIcon("String_Node_Str"));
  assignListener(deobfuscationCommandButton,"String_Node_Str");
  JCommandButton globalrenameCommandButton=new JCommandButton(fixCommandTitle(translate("String_Node_Str")),View.getResizableIcon("String_Node_Str"));
  assignListener(globalrenameCommandButton,"String_Node_Str");
  JCommandButton renameinvalidCommandButton=new JCommandButton(fixCommandTitle(translate("String_Node_Str")),View.getResizableIcon("String_Node_Str"));
  assignListener(renameinvalidCommandButton,"String_Node_Str");
  deobfuscationBand.addCommandButton(deobfuscationCommandButton,RibbonElementPriority.TOP);
  deobfuscationBand.addCommandButton(globalrenameCommandButton,RibbonElementPriority.MEDIUM);
  deobfuscationBand.addCommandButton(renameinvalidCommandButton,RibbonElementPriority.MEDIUM);
  RibbonTask toolsTask=new RibbonTask(translate("String_Node_Str"),toolsBand,deobfuscationBand);
  JRibbonBand settingsBand=new JRibbonBand(translate("String_Node_Str"),null);
  settingsBand.setResizePolicies((List)Arrays.asList(new CoreRibbonResizePolicies.Mirror(settingsBand.getControlPanel()),new IconRibbonBandResizePolicy(settingsBand.getControlPanel())));
  autoDeobfuscateMenuItem=new JCheckBox(translate("String_Node_Str"));
  miInternalViewer=new JCheckBox(translate("String_Node_Str"));
  miParallelSpeedUp=new JCheckBox(translate("String_Node_Str"));
  miDecompile=new JCheckBox(translate("String_Node_Str"));
  miAssociate=new JCheckBox(translate("String_Node_Str"));
  miCacheDisk=new JCheckBox(translate("String_Node_Str"));
  miGotoMainClassOnStartup=new JCheckBox(translate("String_Node_Str"));
  settingsBand.addRibbonComponent(new JRibbonComponent(autoDeobfuscateMenuItem));
  settingsBand.addRibbonComponent(new JRibbonComponent(miInternalViewer));
  settingsBand.addRibbonComponent(new JRibbonComponent(miParallelSpeedUp));
  settingsBand.addRibbonComponent(new JRibbonComponent(miDecompile));
  settingsBand.addRibbonComponent(new JRibbonComponent(miAssociate));
  settingsBand.addRibbonComponent(new JRibbonComponent(miCacheDisk));
  settingsBand.addRibbonComponent(new JRibbonComponent(miGotoMainClassOnStartup));
  JRibbonBand languageBand=new JRibbonBand(translate("String_Node_Str"),null);
  languageBand.setResizePolicies((List)Arrays.asList(new BaseRibbonBandResizePolicy<AbstractBandControlPanel>(languageBand.getControlPanel()){
    @Override public int getPreferredWidth(    int i,    int i1){
      return 105;
    }
    @Override public void install(    int i,    int i1){
    }
  }
,new IconRibbonBandResizePolicy(languageBand.getControlPanel())));
  JCommandButton setLanguageCommandButton=new JCommandButton(fixCommandTitle(translate("String_Node_Str")),View.getResizableIcon("String_Node_Str"));
  assignListener(setLanguageCommandButton,"String_Node_Str");
  languageBand.addCommandButton(setLanguageCommandButton,RibbonElementPriority.TOP);
  RibbonTask settingsTask=new RibbonTask(translate("String_Node_Str"),settingsBand,languageBand);
  JRibbonBand helpBand=new JRibbonBand(translate("String_Node_Str"),null);
  helpBand.setResizePolicies((List)Arrays.asList(new CoreRibbonResizePolicies.Mirror(helpBand.getControlPanel()),new IconRibbonBandResizePolicy(helpBand.getControlPanel())));
  JCommandButton checkForUpdatesCommandButton=new JCommandButton(fixCommandTitle(translate("String_Node_Str")),View.getResizableIcon("String_Node_Str"));
  assignListener(checkForUpdatesCommandButton,"String_Node_Str");
  JCommandButton helpUsUpdatesCommandButton=new JCommandButton(fixCommandTitle(translate("String_Node_Str")),View.getResizableIcon("String_Node_Str"));
  assignListener(helpUsUpdatesCommandButton,"String_Node_Str");
  JCommandButton homepageCommandButton=new JCommandButton(fixCommandTitle(translate("String_Node_Str")),View.getResizableIcon("String_Node_Str"));
  assignListener(homepageCommandButton,"String_Node_Str");
  JCommandButton aboutCommandButton=new JCommandButton(fixCommandTitle(translate("String_Node_Str")),View.getResizableIcon("String_Node_Str"));
  assignListener(aboutCommandButton,"String_Node_Str");
  helpBand.addCommandButton(aboutCommandButton,RibbonElementPriority.TOP);
  helpBand.addCommandButton(checkForUpdatesCommandButton,RibbonElementPriority.MEDIUM);
  helpBand.addCommandButton(homepageCommandButton,RibbonElementPriority.MEDIUM);
  helpBand.addCommandButton(helpUsUpdatesCommandButton,RibbonElementPriority.TOP);
  RibbonTask helpTask=new RibbonTask(translate("String_Node_Str"),helpBand);
  rib.addTask(fileTask);
  rib.addTask(toolsTask);
  rib.addTask(settingsTask);
  rib.addTask(helpTask);
  RibbonApplicationMenu mainMenu=new RibbonApplicationMenu();
  RibbonApplicationMenuEntryPrimary exportFlaMenu=new RibbonApplicationMenuEntryPrimary(View.getResizableIcon("String_Node_Str"),translate("String_Node_Str"),new ActionRedirector(this,"String_Node_Str"),CommandButtonKind.ACTION_ONLY);
  RibbonApplicationMenuEntryPrimary exportAllMenu=new RibbonApplicationMenuEntryPrimary(View.getResizableIcon("String_Node_Str"),translate("String_Node_Str"),new ActionRedirector(this,"String_Node_Str"),CommandButtonKind.ACTION_ONLY);
  RibbonApplicationMenuEntryPrimary exportSelMenu=new RibbonApplicationMenuEntryPrimary(View.getResizableIcon("String_Node_Str"),translate("String_Node_Str"),new ActionRedirector(this,"String_Node_Str"),CommandButtonKind.ACTION_ONLY);
  RibbonApplicationMenuEntryPrimary checkUpdatesMenu=new RibbonApplicationMenuEntryPrimary(View.getResizableIcon("String_Node_Str"),translate("String_Node_Str"),new ActionRedirector(this,"String_Node_Str"),CommandButtonKind.ACTION_ONLY);
  RibbonApplicationMenuEntryPrimary aboutMenu=new RibbonApplicationMenuEntryPrimary(View.getResizableIcon("String_Node_Str"),translate("String_Node_Str"),new ActionRedirector(this,"String_Node_Str"),CommandButtonKind.ACTION_ONLY);
  RibbonApplicationMenuEntryFooter exitMenu=new RibbonApplicationMenuEntryFooter(View.getResizableIcon("String_Node_Str"),translate("String_Node_Str"),new ActionRedirector(this,"String_Node_Str"));
  mainMenu.addMenuEntry(exportFlaMenu);
  mainMenu.addMenuEntry(exportAllMenu);
  mainMenu.addMenuEntry(exportSelMenu);
  mainMenu.addMenuSeparator();
  mainMenu.addMenuEntry(checkUpdatesMenu);
  mainMenu.addMenuEntry(aboutMenu);
  mainMenu.addFooterEntry(exitMenu);
  mainMenu.addMenuSeparator();
  rib.setApplicationMenu(mainMenu);
  int w=(Integer)Configuration.getConfig("String_Node_Str",1000);
  int h=(Integer)Configuration.getConfig("String_Node_Str",700);
  Dimension dim=java.awt.Toolkit.getDefaultToolkit().getScreenSize();
  if (w > dim.width) {
    w=dim.width;
  }
  if (h > dim.height) {
    h=dim.height;
  }
  setSize(w,h);
  boolean maximizedHorizontal=(Boolean)Configuration.getConfig("String_Node_Str",false);
  boolean maximizedVertical=(Boolean)Configuration.getConfig("String_Node_Str",false);
  int state=0;
  if (maximizedHorizontal) {
    state=state | JFrame.MAXIMIZED_HORIZ;
  }
  if (maximizedVertical) {
    state=state | JFrame.MAXIMIZED_VERT;
  }
  setExtendedState(state);
  View.setWindowIcon(this);
  addWindowStateListener(new WindowStateListener(){
    @Override public void windowStateChanged(    WindowEvent e){
      int state=e.getNewState();
      Configuration.setConfig("String_Node_Str",(state & JFrame.MAXIMIZED_HORIZ) == JFrame.MAXIMIZED_HORIZ);
      Configuration.setConfig("String_Node_Str",(state & JFrame.MAXIMIZED_VERT) == JFrame.MAXIMIZED_VERT);
    }
  }
);
  addComponentListener(new ComponentAdapter(){
    @Override public void componentResized(    ComponentEvent e){
      int state=getExtendedState();
      if ((state & JFrame.MAXIMIZED_HORIZ) == 0) {
        Configuration.setConfig("String_Node_Str",getWidth());
      }
      if ((state & JFrame.MAXIMIZED_VERT) == 0) {
        Configuration.setConfig("String_Node_Str",getHeight());
      }
    }
  }
);
  addWindowListener(new WindowAdapter(){
    @Override public void windowClosing(    WindowEvent e){
      if (Main.proxyFrame != null) {
        if (Main.proxyFrame.isVisible()) {
          return;
        }
      }
      Main.exit();
    }
  }
);
  setTitle(Main.applicationVerName + ((swf != null && Configuration.DISPLAY_FILENAME) ? "String_Node_Str" + Main.getFileTitle() : "String_Node_Str"));
  JMenuBar menuBar=new JMenuBar();
  try {
    flashPanel=new FlashPlayerPanel(this);
  }
 catch (  FlashUnsupportedException fue) {
  }
  JMenu menuFile=new JMenu(translate("String_Node_Str"));
  JMenuItem miOpen=new JMenuItem(translate("String_Node_Str"));
  miOpen.setIcon(View.getIcon("String_Node_Str"));
  miOpen.setActionCommand("String_Node_Str");
  miOpen.addActionListener(this);
  JMenuItem miSave=new JMenuItem(translate("String_Node_Str"));
  miSave.setIcon(View.getIcon("String_Node_Str"));
  miSave.setActionCommand("String_Node_Str");
  miSave.addActionListener(this);
  JMenuItem miSaveAs=new JMenuItem(translate("String_Node_Str"));
  miSaveAs.setIcon(View.getIcon("String_Node_Str"));
  miSaveAs.setActionCommand("String_Node_Str");
  miSaveAs.addActionListener(this);
  JMenuItem menuExportFla=new JMenuItem(translate("String_Node_Str"));
  menuExportFla.setActionCommand("String_Node_Str");
  menuExportFla.addActionListener(this);
  menuExportFla.setIcon(View.getIcon("String_Node_Str"));
  JMenuItem menuExportAll=new JMenuItem(translate("String_Node_Str"));
  menuExportAll.setActionCommand("String_Node_Str");
  menuExportAll.addActionListener(this);
  JMenuItem menuExportSel=new JMenuItem(translate("String_Node_Str"));
  menuExportSel.setActionCommand("String_Node_Str");
  menuExportSel.addActionListener(this);
  menuExportAll.setIcon(View.getIcon("String_Node_Str"));
  menuExportSel.setIcon(View.getIcon("String_Node_Str"));
  menuFile.add(miOpen);
  menuFile.add(miSave);
  menuFile.add(miSaveAs);
  menuFile.add(menuExportFla);
  menuFile.add(menuExportAll);
  menuFile.add(menuExportSel);
  menuFile.addSeparator();
  JMenuItem miClose=new JMenuItem(translate("String_Node_Str"));
  miClose.setIcon(View.getIcon("String_Node_Str"));
  miClose.setActionCommand("String_Node_Str");
  miClose.addActionListener(this);
  menuFile.add(miClose);
  menuBar.add(menuFile);
  JMenu menuDeobfuscation=new JMenu(translate("String_Node_Str"));
  menuDeobfuscation.setIcon(View.getIcon("String_Node_Str"));
  JMenuItem miDeobfuscation=new JMenuItem(translate("String_Node_Str"));
  miDeobfuscation.setActionCommand("String_Node_Str");
  miDeobfuscation.addActionListener(this);
  autoDeobfuscateMenuItem.setSelected((Boolean)Configuration.getConfig("String_Node_Str",true));
  autoDeobfuscateMenuItem.addActionListener(this);
  autoDeobfuscateMenuItem.setActionCommand("String_Node_Str");
  JMenuItem miRenameOneIdentifier=new JMenuItem(translate("String_Node_Str"));
  miRenameOneIdentifier.setActionCommand("String_Node_Str");
  miRenameOneIdentifier.addActionListener(this);
  JMenuItem miRenameIdentifiers=new JMenuItem(translate("String_Node_Str"));
  miRenameIdentifiers.setActionCommand("String_Node_Str");
  miRenameIdentifiers.addActionListener(this);
  menuDeobfuscation.add(miRenameOneIdentifier);
  menuDeobfuscation.add(miRenameIdentifiers);
  menuDeobfuscation.add(miDeobfuscation);
  JMenu menuTools=new JMenu(translate("String_Node_Str"));
  JMenuItem miProxy=new JMenuItem(translate("String_Node_Str"));
  miProxy.setActionCommand("String_Node_Str");
  miProxy.setIcon(View.getIcon("String_Node_Str"));
  miProxy.addActionListener(this);
  JMenuItem miSearchScript=new JMenuItem(translate("String_Node_Str"));
  miSearchScript.addActionListener(this);
  miSearchScript.setActionCommand("String_Node_Str");
  miSearchScript.setIcon(View.getIcon("String_Node_Str"));
  menuTools.add(miSearchScript);
  miInternalViewer.setSelected((Boolean)Configuration.getConfig("String_Node_Str",(Boolean)(flashPanel == null)));
  if (flashPanel == null) {
    miInternalViewer.setSelected(true);
    miInternalViewer.setEnabled(false);
  }
  miInternalViewer.setActionCommand("String_Node_Str");
  miInternalViewer.addActionListener(this);
  miParallelSpeedUp.setSelected((Boolean)Configuration.getConfig("String_Node_Str",Boolean.TRUE));
  miParallelSpeedUp.setActionCommand("String_Node_Str");
  miParallelSpeedUp.addActionListener(this);
  menuTools.add(miProxy);
  menuTools.add(menuDeobfuscation);
  JMenuItem miGotoDocumentClass=new JMenuItem(translate("String_Node_Str"));
  miGotoDocumentClass.setActionCommand("String_Node_Str");
  miGotoDocumentClass.addActionListener(this);
  menuBar.add(menuTools);
  miDecompile.setSelected(!(Boolean)Configuration.getConfig("String_Node_Str",Boolean.TRUE));
  miDecompile.setActionCommand("String_Node_Str");
  miDecompile.addActionListener(this);
  miCacheDisk.setSelected((Boolean)Configuration.getConfig("String_Node_Str",Boolean.TRUE));
  miCacheDisk.setActionCommand("String_Node_Str");
  miCacheDisk.addActionListener(this);
  miGotoMainClassOnStartup.setSelected((Boolean)Configuration.getConfig("String_Node_Str",Boolean.FALSE));
  miGotoMainClassOnStartup.setActionCommand("String_Node_Str");
  miGotoMainClassOnStartup.addActionListener(this);
  miAssociate.setActionCommand("String_Node_Str");
  miAssociate.addActionListener(this);
  miAssociate.setSelected(Main.isAddedToContextMenu());
  JMenuItem miLanguage=new JMenuItem(translate("String_Node_Str"));
  miLanguage.setActionCommand("String_Node_Str");
  miLanguage.addActionListener(this);
  JMenu menuHelp=new JMenu(translate("String_Node_Str"));
  JMenuItem miAbout=new JMenuItem(translate("String_Node_Str"));
  miAbout.setIcon(View.getIcon("String_Node_Str"));
  miAbout.setActionCommand("String_Node_Str");
  miAbout.addActionListener(this);
  JMenuItem miCheckUpdates=new JMenuItem(translate("String_Node_Str"));
  miCheckUpdates.setActionCommand("String_Node_Str");
  miCheckUpdates.setIcon(View.getIcon("String_Node_Str"));
  miCheckUpdates.addActionListener(this);
  JMenuItem miHelpUs=new JMenuItem(translate("String_Node_Str"));
  miHelpUs.setActionCommand("String_Node_Str");
  miHelpUs.setIcon(View.getIcon("String_Node_Str"));
  miHelpUs.addActionListener(this);
  JMenuItem miHomepage=new JMenuItem(translate("String_Node_Str"));
  miHomepage.setActionCommand("String_Node_Str");
  miHomepage.setIcon(View.getIcon("String_Node_Str"));
  miHomepage.addActionListener(this);
  menuHelp.add(miCheckUpdates);
  menuHelp.add(miHelpUs);
  menuHelp.add(miHomepage);
  menuHelp.add(miAbout);
  menuBar.add(menuHelp);
  List<Object> objs=new ArrayList<>();
  if (swf != null) {
    objs.addAll(swf.tags);
  }
  this.swf=swf;
  java.awt.Container cnt=getContentPane();
  cnt.setLayout(new BorderLayout());
  cnt.add(getRibbon(),BorderLayout.NORTH);
  detailPanel=new JPanel();
  detailPanel.setLayout(new CardLayout());
  JPanel whitePanel=new JPanel();
  whitePanel.setBackground(Color.white);
  detailPanel.add(whitePanel,DETAILCARDEMPTYPANEL);
  CardLayout cl2=(CardLayout)(detailPanel.getLayout());
  cl2.show(detailPanel,DETAILCARDEMPTYPANEL);
  abcList=new ArrayList<>();
  getActionScript3(objs,abcList);
  if (!abcList.isEmpty()) {
    abcPanel=new ABCPanel(abcList,swf);
    detailPanel.add(abcPanel.tabbedPane,DETAILCARDAS3NAVIGATOR);
    menuTools.add(miGotoDocumentClass);
  }
 else {
    gotoDocumentClassCommandButton.setEnabled(false);
    actionPanel=new ActionPanel();
    deobfuscationCommandButton.setEnabled(false);
  }
  if (swf == null) {
    renameinvalidCommandButton.setEnabled(false);
    globalrenameCommandButton.setEnabled(false);
    saveCommandButton.setEnabled(false);
    saveasCommandButton.setEnabled(false);
    exportAllCommandButton.setEnabled(false);
    exportAllMenu.setEnabled(false);
    exportFlaCommandButton.setEnabled(false);
    exportFlaMenu.setEnabled(false);
    exportSelectionCommandButton.setEnabled(false);
    exportSelMenu.setEnabled(false);
    deobfuscationCommandButton.setEnabled(false);
    searchCommandButton.setEnabled(false);
  }
  UIManager.getDefaults().put("String_Node_Str",BasicTreeUI.class.getName());
  if (swf == null) {
    tagTree=new JTree((TreeModel)null);
  }
 else {
    tagTree=new JTree(new TagTreeModel(createTagList(objs,null),new SWFRoot((new File(Main.file)).getName())));
  }
  tagTree.addTreeSelectionListener(this);
  tagTree.setBackground(Color.white);
  tagTree.setUI(new BasicTreeUI(){
    @Override public void paint(    Graphics g,    JComponent c){
      setHashColor(Color.gray);
      super.paint(g,c);
    }
  }
);
  DragSource dragSource=DragSource.getDefaultDragSource();
  dragSource.createDefaultDragGestureRecognizer(tagTree,DnDConstants.ACTION_COPY_OR_MOVE,new DragGestureListener(){
    @Override public void dragGestureRecognized(    DragGestureEvent dge){
      dge.startDrag(DragSource.DefaultCopyDrop,new Transferable(){
        @Override public DataFlavor[] getTransferDataFlavors(){
          return new DataFlavor[]{DataFlavor.javaFileListFlavor};
        }
        @Override public boolean isDataFlavorSupported(        DataFlavor flavor){
          return flavor.equals(DataFlavor.javaFileListFlavor);
        }
        @Override public Object getTransferData(        DataFlavor flavor) throws UnsupportedFlavorException, IOException {
          if (flavor.equals(DataFlavor.javaFileListFlavor)) {
            List<File> files=new ArrayList<>();
            String tempDir=System.getProperty("String_Node_Str");
            if (!tempDir.endsWith(File.separator)) {
              tempDir+=File.separator;
            }
            Random rnd=new Random();
            tempDir+="String_Node_Str" + File.separator + "String_Node_Str"+ File.separator+ System.currentTimeMillis()+ "String_Node_Str"+ rnd.nextInt(1000);
            File fTempDir=new File(tempDir);
            if (!fTempDir.exists()) {
              if (!fTempDir.mkdirs()) {
                if (!fTempDir.exists()) {
                  throw new IOException("String_Node_Str" + fTempDir);
                }
              }
            }
            final ExportDialog export=new ExportDialog();
            try {
              File ftemp=new File(tempDir);
              files=exportSelection(errorHandler,tempDir,export);
              files.clear();
              File fs[]=ftemp.listFiles();
              for (              File f : fs) {
                files.add(f);
              }
              Main.stopWork();
            }
 catch (            IOException ex) {
              return null;
            }
            for (            File f : files) {
              f.deleteOnExit();
            }
            new File(tempDir).deleteOnExit();
            return files;
          }
          return null;
        }
      }
,new DragSourceListener(){
        @Override public void dragEnter(        DragSourceDragEvent dsde){
          enableDrop(false);
        }
        @Override public void dragOver(        DragSourceDragEvent dsde){
        }
        @Override public void dropActionChanged(        DragSourceDragEvent dsde){
        }
        @Override public void dragExit(        DragSourceEvent dse){
        }
        @Override public void dragDropEnd(        DragSourceDropEvent dsde){
          enableDrop(true);
        }
      }
);
    }
  }
);
  final JPopupMenu contextPopupMenu=new JPopupMenu();
  final JMenuItem removeMenuItem=new JMenuItem(translate("String_Node_Str"));
  removeMenuItem.addActionListener(this);
  removeMenuItem.setActionCommand("String_Node_Str");
  JMenuItem exportSelectionMenuItem=new JMenuItem(translate("String_Node_Str"));
  exportSelectionMenuItem.setActionCommand("String_Node_Str");
  exportSelectionMenuItem.addActionListener(this);
  contextPopupMenu.add(exportSelectionMenuItem);
  contextPopupMenu.add(removeMenuItem);
  tagTree.addMouseListener(new MouseAdapter(){
    @Override public void mouseClicked(    MouseEvent e){
      if (SwingUtilities.isRightMouseButton(e)) {
        int row=tagTree.getClosestRowForLocation(e.getX(),e.getY());
        tagTree.setSelectionRow(row);
        Object tagObj=tagTree.getLastSelectedPathComponent();
        if (tagObj == null) {
          return;
        }
        if (tagObj instanceof TagNode) {
          tagObj=((TagNode)tagObj).tag;
        }
        removeMenuItem.setVisible(tagObj instanceof Tag);
        contextPopupMenu.show(e.getComponent(),e.getX(),e.getY());
      }
    }
  }
);
  TreeCellRenderer tcr=new DefaultTreeCellRenderer(){
    @Override public Component getTreeCellRendererComponent(    JTree tree,    Object value,    boolean sel,    boolean expanded,    boolean leaf,    int row,    boolean hasFocus){
      super.getTreeCellRendererComponent(tree,value,sel,expanded,leaf,row,hasFocus);
      Object val=value;
      if (val instanceof TagNode) {
        val=((TagNode)val).tag;
      }
      String type=getTagType(val);
      if (row == 0) {
        setIcon(View.getIcon("String_Node_Str"));
      }
 else       if (type != null) {
        if (type.equals("String_Node_Str") && expanded) {
          type="String_Node_Str";
        }
        setIcon(View.getIcon(type + "String_Node_Str"));
      }
 else {
      }
      String tos=value.toString();
      int sw=getFontMetrics(getFont()).stringWidth(tos);
      setPreferredSize(new Dimension(18 + sw,getPreferredSize().height));
      setUI(new BasicLabelUI());
      setOpaque(false);
      setBackgroundNonSelectionColor(Color.white);
      return this;
    }
  }
;
  tagTree.setCellRenderer(tcr);
  loadingPanel.setPreferredSize(new Dimension(30,30));
  statusPanel=new JPanel();
  statusPanel.setPreferredSize(new Dimension(1,30));
  statusPanel.setBorder(new BevelBorder(BevelBorder.LOWERED));
  statusPanel.setLayout(new BorderLayout());
  statusPanel.add(loadingPanel,BorderLayout.WEST);
  statusPanel.add(statusLabel,BorderLayout.CENTER);
  errorLogFrame=new ErrorLogFrame();
  errorNotificationButton=new JButton("String_Node_Str");
  errorNotificationButton.setIcon(View.getIcon("String_Node_Str"));
  errorNotificationButton.setBorderPainted(false);
  errorNotificationButton.setFocusPainted(false);
  errorNotificationButton.setContentAreaFilled(false);
  errorNotificationButton.setMargin(new Insets(2,2,2,2));
  errorNotificationButton.setCursor(Cursor.getPredefinedCursor(Cursor.HAND_CURSOR));
  errorNotificationButton.setActionCommand("String_Node_Str");
  errorNotificationButton.addActionListener(this);
  errorNotificationButton.setToolTipText(translate("String_Node_Str"));
  statusPanel.add(errorNotificationButton,BorderLayout.EAST);
  loadingPanel.setVisible(false);
  cnt.add(statusPanel,BorderLayout.SOUTH);
  if (swf != null) {
    for (    Tag t : swf.tags) {
      if (t instanceof JPEGTablesTag) {
        jtt=(JPEGTablesTag)t;
      }
    }
  }
  characters=new HashMap<>();
  List<Object> list2=new ArrayList<>();
  if (swf != null) {
    list2.addAll(swf.tags);
  }
  parseCharacters(list2);
  JPanel textTopPanel=new JPanel(new BorderLayout());
  textValue=new LineMarkedEditorPane();
  textTopPanel.add(new JScrollPane(textValue),BorderLayout.CENTER);
  textValue.setEditable(false);
  JPanel textButtonsPanel=new JPanel();
  textButtonsPanel.setLayout(new FlowLayout());
  textSaveButton=new JButton(translate("String_Node_Str"),View.getIcon("String_Node_Str"));
  textSaveButton.setMargin(new Insets(3,3,3,10));
  textSaveButton.setActionCommand("String_Node_Str");
  textSaveButton.addActionListener(this);
  textEditButton=new JButton(translate("String_Node_Str"),View.getIcon("String_Node_Str"));
  textEditButton.setMargin(new Insets(3,3,3,10));
  textEditButton.setActionCommand("String_Node_Str");
  textEditButton.addActionListener(this);
  textCancelButton=new JButton(translate("String_Node_Str"),View.getIcon("String_Node_Str"));
  textCancelButton.setMargin(new Insets(3,3,3,10));
  textCancelButton.setActionCommand("String_Node_Str");
  textCancelButton.addActionListener(this);
  textButtonsPanel.add(textEditButton);
  textButtonsPanel.add(textSaveButton);
  textButtonsPanel.add(textCancelButton);
  textSaveButton.setVisible(false);
  textCancelButton.setVisible(false);
  textTopPanel.add(textButtonsPanel,BorderLayout.SOUTH);
  displayWithPreview=new JPanel(new CardLayout());
  displayWithPreview.add(textTopPanel,CARDTEXTPANEL);
  final JPanel fontPanel=new JPanel();
  final JPanel fontParams2=new JPanel();
  fontParams2.setLayout(null);
  final Component ctable[][]=new Component[][]{{new JLabel(translate("String_Node_Str")),fontNameLabel=new JLabel(translate("String_Node_Str"))},{new JLabel(translate("String_Node_Str")),fontIsBoldLabel=new JLabel(translate("String_Node_Str"))},{new JLabel(translate("String_Node_Str")),fontIsItalicLabel=new JLabel(translate("String_Node_Str"))},{new JLabel(translate("String_Node_Str")),fontAscentLabel=new JLabel(translate("String_Node_Str"))},{new JLabel(translate("String_Node_Str")),fontDescentLabel=new JLabel(translate("String_Node_Str"))},{new JLabel(translate("String_Node_Str")),fontLeadingLabel=new JLabel(translate("String_Node_Str"))},{new JLabel(translate("String_Node_Str")),fontCharactersTextArea=new JTextArea("String_Node_Str")}};
  fontCharactersTextArea.setLineWrap(true);
  fontCharactersTextArea.setWrapStyleWord(true);
  fontCharactersTextArea.setOpaque(false);
  fontCharactersTextArea.setEditable(false);
  fontCharactersTextArea.setFont(new JLabel().getFont());
  final int borderLeft=10;
  final int maxws[]=new int[ctable[0].length];
  for (int x=0; x < ctable[0].length; x++) {
    int maxw=0;
    for (int y=0; y < ctable.length; y++) {
      Dimension d=ctable[y][x].getPreferredSize();
      if (d.width > maxw) {
        maxw=d.width;
      }
    }
    maxws[x]=maxw;
  }
  for (int i=0; i < ctable.length; i++) {
    fontParams2.add(ctable[i][0]);
    fontParams2.add(ctable[i][1]);
  }
  fontParams2.setPreferredSize(new Dimension(600,ctable.length * 25));
  fontChangeList=new ComponentListener(){
    @Override public void componentResized(    ComponentEvent e){
      int h=0;
      Insets is=fontPanel.getInsets();
      Insets is2=fontParams2.getInsets();
      for (int i=0; i < ctable.length; i++) {
        Dimension d=ctable[i][0].getPreferredSize();
        Dimension d2=ctable[i][1].getPreferredSize();
        ctable[i][0].setBounds(borderLeft,h,maxws[0],25);
        int w2=fontPanel.getWidth() - 3 * borderLeft - maxws[0] - is.left - is.right - 10;
        ctable[i][1].setBounds(borderLeft + maxws[0] + borderLeft,h,w2,d2.height);
        h+=Math.max(Math.max(d.height,d2.height),25);
      }
      fontParams2.setPreferredSize(new Dimension(fontPanel.getWidth() - 20,h));
      fontPanel.revalidate();
    }
    @Override public void componentMoved(    ComponentEvent e){
      componentResized(null);
    }
    @Override public void componentShown(    ComponentEvent e){
      componentResized(null);
    }
    @Override public void componentHidden(    ComponentEvent e){
      componentResized(null);
    }
  }
;
  final JPanel fontParams1=new JPanel();
  fontPanel.addComponentListener(fontChangeList);
  fontChangeList.componentResized(null);
  fontParams1.setLayout(new BoxLayout(fontParams1,BoxLayout.Y_AXIS));
  fontParams1.add(fontParams2);
  JPanel fontAddCharsPanel=new JPanel(new FlowLayout());
  fontAddCharsPanel.add(new JLabel(translate("String_Node_Str")));
  fontAddCharactersField=new MyTextField();
  fontAddCharactersField.setPreferredSize(new Dimension(150,fontAddCharactersField.getPreferredSize().height));
  fontAddCharsPanel.add(fontAddCharactersField);
  JButton fontAddCharsButton=new JButton(translate("String_Node_Str"));
  fontAddCharsButton.setActionCommand("String_Node_Str");
  fontAddCharsButton.addActionListener(this);
  fontAddCharsPanel.add(fontAddCharsButton);
  fontParams1.add(fontAddCharsPanel);
  JPanel fontSelectionPanel=new JPanel(new FlowLayout());
  fontSelectionPanel.add(new JLabel(translate("String_Node_Str")));
  String fontNames[]=GraphicsEnvironment.getLocalGraphicsEnvironment().getAvailableFontFamilyNames();
  fontSelection=new JComboBox<>(fontNames);
  fontSelection.setSelectedIndex(0);
  fontSelection.setSelectedItem("String_Node_Str");
  fontSelection.setSelectedItem("String_Node_Str");
  fontSelection.addItemListener(new ItemListener(){
    @Override public void itemStateChanged(    ItemEvent e){
      if (oldValue instanceof FontTag) {
        FontTag f=(FontTag)oldValue;
        sourceFontsMap.put(f.getFontId(),(String)fontSelection.getSelectedItem());
      }
    }
  }
);
  fontSelectionPanel.add(fontSelection);
  JPanel fontCharPanel=new JPanel();
  fontCharPanel.setLayout(new ListLayout());
  fontCharPanel.add(fontAddCharsPanel);
  fontCharPanel.add(fontSelectionPanel);
  fontParams1.add(fontCharPanel);
  fontPanel.setLayout(new BorderLayout());
  fontParams1.add(Box.createVerticalGlue());
  fontPanel.add(new JScrollPane(fontParams1),BorderLayout.CENTER);
  displayWithPreview.add(fontPanel,CARDFONTPANEL);
  Component leftComponent=null;
  displayPanel=new JPanel(new CardLayout());
  if (flashPanel != null) {
    leftComponent=flashPanel;
  }
 else {
    JPanel swtPanel=new JPanel(new BorderLayout());
    swtPanel.add(new JLabel("String_Node_Str" + translate("String_Node_Str") + "String_Node_Str",JLabel.CENTER),BorderLayout.CENTER);
    swtPanel.setBackground(Color.white);
    leftComponent=swtPanel;
  }
  textValue.setContentType("String_Node_Str");
  previewSplitPane=new JSplitPane(JSplitPane.HORIZONTAL_SPLIT);
  previewSplitPane.setDividerLocation(300);
  JPanel pan=new JPanel(new BorderLayout());
  JLabel prevLabel=new HeaderLabel(translate("String_Node_Str"));
  prevLabel.setHorizontalAlignment(SwingConstants.CENTER);
  JLabel paramsLabel=new HeaderLabel(translate("String_Node_Str"));
  paramsLabel.setHorizontalAlignment(SwingConstants.CENTER);
  pan.add(prevLabel,BorderLayout.NORTH);
  pan.add(leftComponent,BorderLayout.CENTER);
  previewSplitPane.setLeftComponent(pan);
  parametersPanel=new JPanel(new BorderLayout());
  parametersPanel.add(paramsLabel,BorderLayout.NORTH);
  parametersPanel.add(displayWithPreview,BorderLayout.CENTER);
  previewSplitPane.setRightComponent(parametersPanel);
  parametersPanel.setVisible(false);
  displayPanel.add(previewSplitPane,CARDFLASHPANEL);
  imagePanel=new ImagePanel();
  JPanel imagesCard=new JPanel(new BorderLayout());
  imagesCard.add(imagePanel,BorderLayout.CENTER);
  imageReplaceButton=new JButton(translate("String_Node_Str"),View.getIcon("String_Node_Str"));
  imageReplaceButton.setMargin(new Insets(3,3,3,10));
  imageReplaceButton.setActionCommand("String_Node_Str");
  imageReplaceButton.addActionListener(this);
  imageButtonsPanel=new JPanel(new FlowLayout());
  imageButtonsPanel.add(imageReplaceButton);
  imagesCard.add(imageButtonsPanel,BorderLayout.SOUTH);
  displayPanel.add(imagesCard,CARDIMAGEPANEL);
  JPanel shapesCard=new JPanel(new BorderLayout());
  JPanel previewPanel=new JPanel(new BorderLayout());
  previewImagePanel=new ImagePanel();
  previewPanel.add(previewImagePanel,BorderLayout.CENTER);
  JLabel prevIntLabel=new HeaderLabel(translate("String_Node_Str"));
  prevIntLabel.setHorizontalAlignment(SwingConstants.CENTER);
  previewPanel.add(prevIntLabel,BorderLayout.NORTH);
  shapesCard.add(previewPanel,BorderLayout.CENTER);
  displayPanel.add(shapesCard,CARDDRAWPREVIEWPANEL);
  swfPreviewPanel=new SWFPreviwPanel();
  displayPanel.add(swfPreviewPanel,CARDSWFPREVIEWPANEL);
  displayPanel.add(new JPanel(),CARDEMPTYPANEL);
  if (actionPanel != null) {
    displayPanel.add(actionPanel,CARDACTIONSCRIPTPANEL);
  }
  if (abcPanel != null) {
    displayPanel.add(abcPanel,CARDACTIONSCRIPTPANEL);
  }
  CardLayout cl=(CardLayout)(displayPanel.getLayout());
  cl.show(displayPanel,CARDEMPTYPANEL);
  searchPanel=new JPanel();
  searchPanel.setLayout(new BorderLayout());
  searchPanel.add(filterField,BorderLayout.CENTER);
  searchPanel.add(new JLabel(View.getIcon("String_Node_Str")),BorderLayout.WEST);
  JLabel closeSearchButton=new JLabel(View.getIcon("String_Node_Str"));
  closeSearchButton.addMouseListener(new MouseAdapter(){
    @Override public void mouseClicked(    MouseEvent e){
      filterField.setText("String_Node_Str");
      doFilter();
      searchPanel.setVisible(false);
    }
  }
);
  searchPanel.add(closeSearchButton,BorderLayout.EAST);
  JPanel pan1=new JPanel(new BorderLayout());
  pan1.add(new JScrollPane(tagTree),BorderLayout.CENTER);
  pan1.add(searchPanel,BorderLayout.SOUTH);
  filterField.setActionCommand("String_Node_Str");
  filterField.addActionListener(this);
  searchPanel.setVisible(false);
  filterField.getDocument().addDocumentListener(new DocumentListener(){
    @Override public void changedUpdate(    DocumentEvent e){
      warn();
    }
    @Override public void removeUpdate(    DocumentEvent e){
      warn();
    }
    @Override public void insertUpdate(    DocumentEvent e){
      warn();
    }
    public void warn(){
      doFilter();
    }
  }
);
  splitPane2=new JSplitPane(JSplitPane.VERTICAL_SPLIT,pan1,detailPanel);
  splitPane1=new JSplitPane(JSplitPane.HORIZONTAL_SPLIT,splitPane2,displayPanel);
  if (swf == null) {
    JPanel welcomePanel=new JPanel();
    welcomePanel.setLayout(new BoxLayout(welcomePanel,BoxLayout.Y_AXIS));
    JLabel welcomeToLabel=new JLabel(translate("String_Node_Str"));
    welcomeToLabel.setFont(welcomeToLabel.getFont().deriveFont(40));
    welcomeToLabel.setAlignmentX(0.5f);
    JPanel appNamePanel=new JPanel(new FlowLayout());
    JLabel jpLabel=new JLabel("String_Node_Str");
    jpLabel.setAlignmentX(0.5f);
    jpLabel.setForeground(new Color(0,0,160));
    jpLabel.setFont(new Font("String_Node_Str",Font.BOLD,50));
    jpLabel.setHorizontalAlignment(SwingConstants.CENTER);
    appNamePanel.add(jpLabel);
    JLabel ffLabel=new JLabel("String_Node_Str");
    ffLabel.setAlignmentX(0.5f);
    ffLabel.setFont(new Font("String_Node_Str",Font.BOLD,50));
    ffLabel.setHorizontalAlignment(SwingConstants.CENTER);
    appNamePanel.add(ffLabel);
    JLabel decLabel=new JLabel("String_Node_Str");
    decLabel.setAlignmentX(0.5f);
    decLabel.setForeground(Color.red);
    decLabel.setFont(new Font("String_Node_Str",Font.BOLD,50));
    decLabel.setHorizontalAlignment(SwingConstants.CENTER);
    appNamePanel.add(decLabel);
    appNamePanel.setAlignmentX(0.5f);
    welcomePanel.add(Box.createGlue());
    welcomePanel.add(welcomeToLabel);
    welcomePanel.add(appNamePanel);
    JLabel startLabel=new JLabel(translate("String_Node_Str"));
    startLabel.setAlignmentX(0.5f);
    startLabel.setFont(startLabel.getFont().deriveFont(30));
    welcomePanel.add(startLabel);
    welcomePanel.add(Box.createGlue());
    cnt.add(welcomePanel,BorderLayout.CENTER);
  }
 else {
    cnt.add(splitPane1,BorderLayout.CENTER);
  }
  splitPane1.addPropertyChangeListener(JSplitPane.DIVIDER_LOCATION_PROPERTY,new PropertyChangeListener(){
    @Override public void propertyChange(    PropertyChangeEvent pce){
      if (splitsInited) {
        Configuration.setConfig("String_Node_Str",pce.getNewValue());
      }
    }
  }
);
  splitPane2.addPropertyChangeListener(JSplitPane.DIVIDER_LOCATION_PROPERTY,new PropertyChangeListener(){
    @Override public void propertyChange(    PropertyChangeEvent pce){
      if (detailPanel.isVisible()) {
        Configuration.setConfig("String_Node_Str",pce.getNewValue());
      }
    }
  }
);
  View.centerScreen(this);
  tagTree.addKeyListener(new KeyAdapter(){
    @Override public void keyPressed(    KeyEvent e){
      if ((e.getKeyCode() == 'F') && (e.isControlDown())) {
        searchPanel.setVisible(true);
        filterField.requestFocusInWindow();
      }
    }
  }
);
  detailPanel.setVisible(false);
  enableDrop(true);
  Logger logger=Logger.getLogger("String_Node_Str");
  logger.addHandler(errorLogFrame.getHandler());
  logger.addHandler(new Handler(){
    private Timer timer=null;
    private int pos=0;
    @Override public void publish(    LogRecord record){
      if (record.getLevel() == Level.SEVERE) {
        errorNotificationButton.setIcon(View.getIcon("String_Node_Str"));
        errorNotificationButton.setToolTipText(translate("String_Node_Str"));
        if (timer != null) {
          timer.cancel();
        }
        timer=new Timer();
        timer.schedule(new TimerTask(){
          @Override public void run(){
            pos++;
            if ((pos % 2) == 0) {
              errorNotificationButton.setIcon(View.getIcon("String_Node_Str"));
            }
 else {
              errorNotificationButton.setIcon(null);
              errorNotificationButton.setSize(16,16);
            }
            if (pos >= 4) {
              cancel();
            }
          }
        }
,500,500);
      }
    }
    @Override public void flush(){
    }
    @Override public void close() throws SecurityException {
    }
  }
);
}

Fixed version (ground truth):
@SuppressWarnings("String_Node_Str") public MainFrame(SWF swf){
  super();
  JRibbon rib=getRibbon();
  JRibbonBand editBand=new JRibbonBand(translate("String_Node_Str"),null);
  editBand.setResizePolicies((List)Arrays.asList(new CoreRibbonResizePolicies.Mirror(editBand.getControlPanel()),new IconRibbonBandResizePolicy(editBand.getControlPanel())));
  JCommandButton openCommandButton=new JCommandButton(fixCommandTitle(translate("String_Node_Str")),View.getResizableIcon("String_Node_Str"));
  assignListener(openCommandButton,"String_Node_Str");
  JCommandButton saveCommandButton=new JCommandButton(fixCommandTitle(translate("String_Node_Str")),View.getResizableIcon("String_Node_Str"));
  assignListener(saveCommandButton,"String_Node_Str");
  JCommandButton saveasCommandButton=new JCommandButton(fixCommandTitle(translate("String_Node_Str")),View.getResizableIcon("String_Node_Str"));
  assignListener(saveasCommandButton,"String_Node_Str");
  editBand.addCommandButton(openCommandButton,RibbonElementPriority.TOP);
  editBand.addCommandButton(saveCommandButton,RibbonElementPriority.TOP);
  editBand.addCommandButton(saveasCommandButton,RibbonElementPriority.TOP);
  JRibbonBand exportBand=new JRibbonBand(translate("String_Node_Str"),null);
  exportBand.setResizePolicies((List)Arrays.asList(new CoreRibbonResizePolicies.Mirror(exportBand.getControlPanel()),new IconRibbonBandResizePolicy(exportBand.getControlPanel())));
  JCommandButton exportFlaCommandButton=new JCommandButton(fixCommandTitle(translate("String_Node_Str")),View.getResizableIcon("String_Node_Str"));
  assignListener(exportFlaCommandButton,"String_Node_Str");
  JCommandButton exportAllCommandButton=new JCommandButton(fixCommandTitle(translate("String_Node_Str")),View.getResizableIcon("String_Node_Str"));
  assignListener(exportAllCommandButton,"String_Node_Str");
  JCommandButton exportSelectionCommandButton=new JCommandButton(fixCommandTitle(translate("String_Node_Str")),View.getResizableIcon("String_Node_Str"));
  assignListener(exportSelectionCommandButton,"String_Node_Str");
  exportBand.addCommandButton(exportFlaCommandButton,RibbonElementPriority.TOP);
  exportBand.addCommandButton(exportAllCommandButton,RibbonElementPriority.MEDIUM);
  exportBand.addCommandButton(exportSelectionCommandButton,RibbonElementPriority.MEDIUM);
  RibbonTask fileTask=new RibbonTask(translate("String_Node_Str"),editBand,exportBand);
  JRibbonBand toolsBand=new JRibbonBand(translate("String_Node_Str"),null);
  toolsBand.setResizePolicies((List)Arrays.asList(new CoreRibbonResizePolicies.Mirror(toolsBand.getControlPanel()),new IconRibbonBandResizePolicy(toolsBand.getControlPanel())));
  JCommandButton searchCommandButton=new JCommandButton(fixCommandTitle(translate("String_Node_Str")),View.getResizableIcon("String_Node_Str"));
  assignListener(searchCommandButton,"String_Node_Str");
  JCommandButton proxyCommandButton=new JCommandButton(fixCommandTitle(translate("String_Node_Str")),View.getResizableIcon("String_Node_Str"));
  assignListener(proxyCommandButton,"String_Node_Str");
  JCommandButton gotoDocumentClassCommandButton=new JCommandButton(fixCommandTitle(translate("String_Node_Str")),View.getResizableIcon("String_Node_Str"));
  assignListener(gotoDocumentClassCommandButton,"String_Node_Str");
  toolsBand.addCommandButton(searchCommandButton,RibbonElementPriority.TOP);
  toolsBand.addCommandButton(proxyCommandButton,RibbonElementPriority.TOP);
  toolsBand.addCommandButton(gotoDocumentClassCommandButton,RibbonElementPriority.TOP);
  JRibbonBand deobfuscationBand=new JRibbonBand(translate("String_Node_Str"),null);
  deobfuscationBand.setResizePolicies((List)Arrays.asList(new CoreRibbonResizePolicies.Mirror(deobfuscationBand.getControlPanel()),new IconRibbonBandResizePolicy(deobfuscationBand.getControlPanel())));
  JCommandButton deobfuscationCommandButton=new JCommandButton(fixCommandTitle(translate("String_Node_Str")),View.getResizableIcon("String_Node_Str"));
  assignListener(deobfuscationCommandButton,"String_Node_Str");
  JCommandButton globalrenameCommandButton=new JCommandButton(fixCommandTitle(translate("String_Node_Str")),View.getResizableIcon("String_Node_Str"));
  assignListener(globalrenameCommandButton,"String_Node_Str");
  JCommandButton renameinvalidCommandButton=new JCommandButton(fixCommandTitle(translate("String_Node_Str")),View.getResizableIcon("String_Node_Str"));
  assignListener(renameinvalidCommandButton,"String_Node_Str");
  deobfuscationBand.addCommandButton(deobfuscationCommandButton,RibbonElementPriority.TOP);
  deobfuscationBand.addCommandButton(globalrenameCommandButton,RibbonElementPriority.MEDIUM);
  deobfuscationBand.addCommandButton(renameinvalidCommandButton,RibbonElementPriority.MEDIUM);
  RibbonTask toolsTask=new RibbonTask(translate("String_Node_Str"),toolsBand,deobfuscationBand);
  JRibbonBand settingsBand=new JRibbonBand(translate("String_Node_Str"),null);
  settingsBand.setResizePolicies((List)Arrays.asList(new CoreRibbonResizePolicies.Mirror(settingsBand.getControlPanel()),new IconRibbonBandResizePolicy(settingsBand.getControlPanel())));
  autoDeobfuscateMenuItem=new JCheckBox(translate("String_Node_Str"));
  miInternalViewer=new JCheckBox(translate("String_Node_Str"));
  miParallelSpeedUp=new JCheckBox(translate("String_Node_Str"));
  miDecompile=new JCheckBox(translate("String_Node_Str"));
  miAssociate=new JCheckBox(translate("String_Node_Str"));
  miCacheDisk=new JCheckBox(translate("String_Node_Str"));
  miGotoMainClassOnStartup=new JCheckBox(translate("String_Node_Str"));
  settingsBand.addRibbonComponent(new JRibbonComponent(autoDeobfuscateMenuItem));
  settingsBand.addRibbonComponent(new JRibbonComponent(miInternalViewer));
  settingsBand.addRibbonComponent(new JRibbonComponent(miParallelSpeedUp));
  settingsBand.addRibbonComponent(new JRibbonComponent(miDecompile));
  settingsBand.addRibbonComponent(new JRibbonComponent(miAssociate));
  settingsBand.addRibbonComponent(new JRibbonComponent(miCacheDisk));
  settingsBand.addRibbonComponent(new JRibbonComponent(miGotoMainClassOnStartup));
  JRibbonBand languageBand=new JRibbonBand(translate("String_Node_Str"),null);
  languageBand.setResizePolicies((List)Arrays.asList(new BaseRibbonBandResizePolicy<AbstractBandControlPanel>(languageBand.getControlPanel()){
    @Override public int getPreferredWidth(    int i,    int i1){
      return 105;
    }
    @Override public void install(    int i,    int i1){
    }
  }
,new IconRibbonBandResizePolicy(languageBand.getControlPanel())));
  JCommandButton setLanguageCommandButton=new JCommandButton(fixCommandTitle(translate("String_Node_Str")),View.getResizableIcon("String_Node_Str"));
  assignListener(setLanguageCommandButton,"String_Node_Str");
  languageBand.addCommandButton(setLanguageCommandButton,RibbonElementPriority.TOP);
  RibbonTask settingsTask=new RibbonTask(translate("String_Node_Str"),settingsBand,languageBand);
  JRibbonBand helpBand=new JRibbonBand(translate("String_Node_Str"),null);
  helpBand.setResizePolicies((List)Arrays.asList(new CoreRibbonResizePolicies.Mirror(helpBand.getControlPanel()),new IconRibbonBandResizePolicy(helpBand.getControlPanel())));
  JCommandButton checkForUpdatesCommandButton=new JCommandButton(fixCommandTitle(translate("String_Node_Str")),View.getResizableIcon("String_Node_Str"));
  assignListener(checkForUpdatesCommandButton,"String_Node_Str");
  JCommandButton helpUsUpdatesCommandButton=new JCommandButton(fixCommandTitle(translate("String_Node_Str")),View.getResizableIcon("String_Node_Str"));
  assignListener(helpUsUpdatesCommandButton,"String_Node_Str");
  JCommandButton homepageCommandButton=new JCommandButton(fixCommandTitle(translate("String_Node_Str")),View.getResizableIcon("String_Node_Str"));
  assignListener(homepageCommandButton,"String_Node_Str");
  JCommandButton aboutCommandButton=new JCommandButton(fixCommandTitle(translate("String_Node_Str")),View.getResizableIcon("String_Node_Str"));
  assignListener(aboutCommandButton,"String_Node_Str");
  helpBand.addCommandButton(aboutCommandButton,RibbonElementPriority.TOP);
  helpBand.addCommandButton(checkForUpdatesCommandButton,RibbonElementPriority.MEDIUM);
  helpBand.addCommandButton(homepageCommandButton,RibbonElementPriority.MEDIUM);
  helpBand.addCommandButton(helpUsUpdatesCommandButton,RibbonElementPriority.TOP);
  RibbonTask helpTask=new RibbonTask(translate("String_Node_Str"),helpBand);
  rib.addTask(fileTask);
  rib.addTask(toolsTask);
  rib.addTask(settingsTask);
  rib.addTask(helpTask);
  RibbonApplicationMenu mainMenu=new RibbonApplicationMenu();
  RibbonApplicationMenuEntryPrimary exportFlaMenu=new RibbonApplicationMenuEntryPrimary(View.getResizableIcon("String_Node_Str"),translate("String_Node_Str"),new ActionRedirector(this,"String_Node_Str"),CommandButtonKind.ACTION_ONLY);
  RibbonApplicationMenuEntryPrimary exportAllMenu=new RibbonApplicationMenuEntryPrimary(View.getResizableIcon("String_Node_Str"),translate("String_Node_Str"),new ActionRedirector(this,"String_Node_Str"),CommandButtonKind.ACTION_ONLY);
  RibbonApplicationMenuEntryPrimary exportSelMenu=new RibbonApplicationMenuEntryPrimary(View.getResizableIcon("String_Node_Str"),translate("String_Node_Str"),new ActionRedirector(this,"String_Node_Str"),CommandButtonKind.ACTION_ONLY);
  RibbonApplicationMenuEntryPrimary checkUpdatesMenu=new RibbonApplicationMenuEntryPrimary(View.getResizableIcon("String_Node_Str"),translate("String_Node_Str"),new ActionRedirector(this,"String_Node_Str"),CommandButtonKind.ACTION_ONLY);
  RibbonApplicationMenuEntryPrimary aboutMenu=new RibbonApplicationMenuEntryPrimary(View.getResizableIcon("String_Node_Str"),translate("String_Node_Str"),new ActionRedirector(this,"String_Node_Str"),CommandButtonKind.ACTION_ONLY);
  RibbonApplicationMenuEntryFooter exitMenu=new RibbonApplicationMenuEntryFooter(View.getResizableIcon("String_Node_Str"),translate("String_Node_Str"),new ActionRedirector(this,"String_Node_Str"));
  mainMenu.addMenuEntry(exportFlaMenu);
  mainMenu.addMenuEntry(exportAllMenu);
  mainMenu.addMenuEntry(exportSelMenu);
  mainMenu.addMenuSeparator();
  mainMenu.addMenuEntry(checkUpdatesMenu);
  mainMenu.addMenuEntry(aboutMenu);
  mainMenu.addFooterEntry(exitMenu);
  mainMenu.addMenuSeparator();
  rib.setApplicationMenu(mainMenu);
  int w=(Integer)Configuration.getConfig("String_Node_Str",1000);
  int h=(Integer)Configuration.getConfig("String_Node_Str",700);
  Dimension dim=java.awt.Toolkit.getDefaultToolkit().getScreenSize();
  if (w > dim.width) {
    w=dim.width;
  }
  if (h > dim.height) {
    h=dim.height;
  }
  setSize(w,h);
  boolean maximizedHorizontal=(Boolean)Configuration.getConfig("String_Node_Str",false);
  boolean maximizedVertical=(Boolean)Configuration.getConfig("String_Node_Str",false);
  int state=0;
  if (maximizedHorizontal) {
    state=state | JFrame.MAXIMIZED_HORIZ;
  }
  if (maximizedVertical) {
    state=state | JFrame.MAXIMIZED_VERT;
  }
  setExtendedState(state);
  View.setWindowIcon(this);
  addWindowStateListener(new WindowStateListener(){
    @Override public void windowStateChanged(    WindowEvent e){
      int state=e.getNewState();
      Configuration.setConfig("String_Node_Str",(state & JFrame.MAXIMIZED_HORIZ) == JFrame.MAXIMIZED_HORIZ);
      Configuration.setConfig("String_Node_Str",(state & JFrame.MAXIMIZED_VERT) == JFrame.MAXIMIZED_VERT);
    }
  }
);
  addComponentListener(new ComponentAdapter(){
    @Override public void componentResized(    ComponentEvent e){
      int state=getExtendedState();
      if ((state & JFrame.MAXIMIZED_HORIZ) == 0) {
        Configuration.setConfig("String_Node_Str",getWidth());
      }
      if ((state & JFrame.MAXIMIZED_VERT) == 0) {
        Configuration.setConfig("String_Node_Str",getHeight());
      }
    }
  }
);
  addWindowListener(new WindowAdapter(){
    @Override public void windowClosing(    WindowEvent e){
      if (Main.proxyFrame != null) {
        if (Main.proxyFrame.isVisible()) {
          return;
        }
      }
      Main.exit();
    }
  }
);
  setTitle(Main.applicationVerName + ((swf != null && Configuration.DISPLAY_FILENAME) ? "String_Node_Str" + Main.getFileTitle() : "String_Node_Str"));
  JMenuBar menuBar=new JMenuBar();
  try {
    flashPanel=new FlashPlayerPanel(this);
  }
 catch (  FlashUnsupportedException fue) {
  }
  JMenu menuFile=new JMenu(translate("String_Node_Str"));
  JMenuItem miOpen=new JMenuItem(translate("String_Node_Str"));
  miOpen.setIcon(View.getIcon("String_Node_Str"));
  miOpen.setActionCommand("String_Node_Str");
  miOpen.addActionListener(this);
  JMenuItem miSave=new JMenuItem(translate("String_Node_Str"));
  miSave.setIcon(View.getIcon("String_Node_Str"));
  miSave.setActionCommand("String_Node_Str");
  miSave.addActionListener(this);
  JMenuItem miSaveAs=new JMenuItem(translate("String_Node_Str"));
  miSaveAs.setIcon(View.getIcon("String_Node_Str"));
  miSaveAs.setActionCommand("String_Node_Str");
  miSaveAs.addActionListener(this);
  JMenuItem menuExportFla=new JMenuItem(translate("String_Node_Str"));
  menuExportFla.setActionCommand("String_Node_Str");
  menuExportFla.addActionListener(this);
  menuExportFla.setIcon(View.getIcon("String_Node_Str"));
  JMenuItem menuExportAll=new JMenuItem(translate("String_Node_Str"));
  menuExportAll.setActionCommand("String_Node_Str");
  menuExportAll.addActionListener(this);
  JMenuItem menuExportSel=new JMenuItem(translate("String_Node_Str"));
  menuExportSel.setActionCommand("String_Node_Str");
  menuExportSel.addActionListener(this);
  menuExportAll.setIcon(View.getIcon("String_Node_Str"));
  menuExportSel.setIcon(View.getIcon("String_Node_Str"));
  menuFile.add(miOpen);
  menuFile.add(miSave);
  menuFile.add(miSaveAs);
  menuFile.add(menuExportFla);
  menuFile.add(menuExportAll);
  menuFile.add(menuExportSel);
  menuFile.addSeparator();
  JMenuItem miClose=new JMenuItem(translate("String_Node_Str"));
  miClose.setIcon(View.getIcon("String_Node_Str"));
  miClose.setActionCommand("String_Node_Str");
  miClose.addActionListener(this);
  menuFile.add(miClose);
  menuBar.add(menuFile);
  JMenu menuDeobfuscation=new JMenu(translate("String_Node_Str"));
  menuDeobfuscation.setIcon(View.getIcon("String_Node_Str"));
  JMenuItem miDeobfuscation=new JMenuItem(translate("String_Node_Str"));
  miDeobfuscation.setActionCommand("String_Node_Str");
  miDeobfuscation.addActionListener(this);
  autoDeobfuscateMenuItem.setSelected((Boolean)Configuration.getConfig("String_Node_Str",true));
  autoDeobfuscateMenuItem.addActionListener(this);
  autoDeobfuscateMenuItem.setActionCommand("String_Node_Str");
  JMenuItem miRenameOneIdentifier=new JMenuItem(translate("String_Node_Str"));
  miRenameOneIdentifier.setActionCommand("String_Node_Str");
  miRenameOneIdentifier.addActionListener(this);
  JMenuItem miRenameIdentifiers=new JMenuItem(translate("String_Node_Str"));
  miRenameIdentifiers.setActionCommand("String_Node_Str");
  miRenameIdentifiers.addActionListener(this);
  menuDeobfuscation.add(miRenameOneIdentifier);
  menuDeobfuscation.add(miRenameIdentifiers);
  menuDeobfuscation.add(miDeobfuscation);
  JMenu menuTools=new JMenu(translate("String_Node_Str"));
  JMenuItem miProxy=new JMenuItem(translate("String_Node_Str"));
  miProxy.setActionCommand("String_Node_Str");
  miProxy.setIcon(View.getIcon("String_Node_Str"));
  miProxy.addActionListener(this);
  JMenuItem miSearchScript=new JMenuItem(translate("String_Node_Str"));
  miSearchScript.addActionListener(this);
  miSearchScript.setActionCommand("String_Node_Str");
  miSearchScript.setIcon(View.getIcon("String_Node_Str"));
  menuTools.add(miSearchScript);
  miInternalViewer.setSelected((Boolean)Configuration.getConfig("String_Node_Str",(Boolean)(flashPanel == null)));
  if (flashPanel == null) {
    miInternalViewer.setSelected(true);
    miInternalViewer.setEnabled(false);
  }
  miInternalViewer.setActionCommand("String_Node_Str");
  miInternalViewer.addActionListener(this);
  miParallelSpeedUp.setSelected((Boolean)Configuration.getConfig("String_Node_Str",Boolean.TRUE));
  miParallelSpeedUp.setActionCommand("String_Node_Str");
  miParallelSpeedUp.addActionListener(this);
  menuTools.add(miProxy);
  menuTools.add(menuDeobfuscation);
  JMenuItem miGotoDocumentClass=new JMenuItem(translate("String_Node_Str"));
  miGotoDocumentClass.setActionCommand("String_Node_Str");
  miGotoDocumentClass.addActionListener(this);
  menuBar.add(menuTools);
  miDecompile.setSelected(!(Boolean)Configuration.getConfig("String_Node_Str",Boolean.TRUE));
  miDecompile.setActionCommand("String_Node_Str");
  miDecompile.addActionListener(this);
  miCacheDisk.setSelected((Boolean)Configuration.getConfig("String_Node_Str",Boolean.TRUE));
  miCacheDisk.setActionCommand("String_Node_Str");
  miCacheDisk.addActionListener(this);
  miGotoMainClassOnStartup.setSelected((Boolean)Configuration.getConfig("String_Node_Str",Boolean.FALSE));
  miGotoMainClassOnStartup.setActionCommand("String_Node_Str");
  miGotoMainClassOnStartup.addActionListener(this);
  miAssociate.setActionCommand("String_Node_Str");
  miAssociate.addActionListener(this);
  miAssociate.setSelected(Main.isAddedToContextMenu());
  JMenuItem miLanguage=new JMenuItem(translate("String_Node_Str"));
  miLanguage.setActionCommand("String_Node_Str");
  miLanguage.addActionListener(this);
  JMenu menuHelp=new JMenu(translate("String_Node_Str"));
  JMenuItem miAbout=new JMenuItem(translate("String_Node_Str"));
  miAbout.setIcon(View.getIcon("String_Node_Str"));
  miAbout.setActionCommand("String_Node_Str");
  miAbout.addActionListener(this);
  JMenuItem miCheckUpdates=new JMenuItem(translate("String_Node_Str"));
  miCheckUpdates.setActionCommand("String_Node_Str");
  miCheckUpdates.setIcon(View.getIcon("String_Node_Str"));
  miCheckUpdates.addActionListener(this);
  JMenuItem miHelpUs=new JMenuItem(translate("String_Node_Str"));
  miHelpUs.setActionCommand("String_Node_Str");
  miHelpUs.setIcon(View.getIcon("String_Node_Str"));
  miHelpUs.addActionListener(this);
  JMenuItem miHomepage=new JMenuItem(translate("String_Node_Str"));
  miHomepage.setActionCommand("String_Node_Str");
  miHomepage.setIcon(View.getIcon("String_Node_Str"));
  miHomepage.addActionListener(this);
  menuHelp.add(miCheckUpdates);
  menuHelp.add(miHelpUs);
  menuHelp.add(miHomepage);
  menuHelp.add(miAbout);
  menuBar.add(menuHelp);
  List<Object> objs=new ArrayList<>();
  if (swf != null) {
    objs.addAll(swf.tags);
  }
  this.swf=swf;
  java.awt.Container cnt=getContentPane();
  cnt.setLayout(new BorderLayout());
  cnt.add(getRibbon(),BorderLayout.NORTH);
  detailPanel=new JPanel();
  detailPanel.setLayout(new CardLayout());
  JPanel whitePanel=new JPanel();
  whitePanel.setBackground(Color.white);
  detailPanel.add(whitePanel,DETAILCARDEMPTYPANEL);
  CardLayout cl2=(CardLayout)(detailPanel.getLayout());
  cl2.show(detailPanel,DETAILCARDEMPTYPANEL);
  abcList=new ArrayList<>();
  getActionScript3(objs,abcList);
  if (!abcList.isEmpty()) {
    abcPanel=new ABCPanel(abcList,swf);
    detailPanel.add(abcPanel.tabbedPane,DETAILCARDAS3NAVIGATOR);
    menuTools.add(miGotoDocumentClass);
  }
 else {
    gotoDocumentClassCommandButton.setEnabled(false);
    actionPanel=new ActionPanel();
    deobfuscationCommandButton.setEnabled(false);
  }
  if (swf == null) {
    renameinvalidCommandButton.setEnabled(false);
    globalrenameCommandButton.setEnabled(false);
    saveCommandButton.setEnabled(false);
    saveasCommandButton.setEnabled(false);
    exportAllCommandButton.setEnabled(false);
    exportAllMenu.setEnabled(false);
    exportFlaCommandButton.setEnabled(false);
    exportFlaMenu.setEnabled(false);
    exportSelectionCommandButton.setEnabled(false);
    exportSelMenu.setEnabled(false);
    deobfuscationCommandButton.setEnabled(false);
    searchCommandButton.setEnabled(false);
  }
  UIManager.getDefaults().put("String_Node_Str",BasicTreeUI.class.getName());
  if (swf == null) {
    tagTree=new JTree((TreeModel)null);
  }
 else {
    tagTree=new JTree(new TagTreeModel(createTagList(objs,null),new SWFRoot((new File(Main.file)).getName())));
  }
  tagTree.addTreeSelectionListener(this);
  tagTree.setBackground(Color.white);
  tagTree.setUI(new BasicTreeUI(){
    @Override public void paint(    Graphics g,    JComponent c){
      setHashColor(Color.gray);
      super.paint(g,c);
    }
  }
);
  DragSource dragSource=DragSource.getDefaultDragSource();
  dragSource.createDefaultDragGestureRecognizer(tagTree,DnDConstants.ACTION_COPY_OR_MOVE,new DragGestureListener(){
    @Override public void dragGestureRecognized(    DragGestureEvent dge){
      dge.startDrag(DragSource.DefaultCopyDrop,new Transferable(){
        @Override public DataFlavor[] getTransferDataFlavors(){
          return new DataFlavor[]{DataFlavor.javaFileListFlavor};
        }
        @Override public boolean isDataFlavorSupported(        DataFlavor flavor){
          return flavor.equals(DataFlavor.javaFileListFlavor);
        }
        @Override public Object getTransferData(        DataFlavor flavor) throws UnsupportedFlavorException, IOException {
          if (flavor.equals(DataFlavor.javaFileListFlavor)) {
            List<File> files=new ArrayList<>();
            String tempDir=System.getProperty("String_Node_Str");
            if (!tempDir.endsWith(File.separator)) {
              tempDir+=File.separator;
            }
            Random rnd=new Random();
            tempDir+="String_Node_Str" + File.separator + "String_Node_Str"+ File.separator+ System.currentTimeMillis()+ "String_Node_Str"+ rnd.nextInt(1000);
            File fTempDir=new File(tempDir);
            if (!fTempDir.exists()) {
              if (!fTempDir.mkdirs()) {
                if (!fTempDir.exists()) {
                  throw new IOException("String_Node_Str" + fTempDir);
                }
              }
            }
            final ExportDialog export=new ExportDialog();
            try {
              File ftemp=new File(tempDir);
              files=exportSelection(errorHandler,tempDir,export);
              files.clear();
              File fs[]=ftemp.listFiles();
              for (              File f : fs) {
                files.add(f);
              }
              Main.stopWork();
            }
 catch (            IOException ex) {
              return null;
            }
            for (            File f : files) {
              f.deleteOnExit();
            }
            new File(tempDir).deleteOnExit();
            return files;
          }
          return null;
        }
      }
,new DragSourceListener(){
        @Override public void dragEnter(        DragSourceDragEvent dsde){
          enableDrop(false);
        }
        @Override public void dragOver(        DragSourceDragEvent dsde){
        }
        @Override public void dropActionChanged(        DragSourceDragEvent dsde){
        }
        @Override public void dragExit(        DragSourceEvent dse){
        }
        @Override public void dragDropEnd(        DragSourceDropEvent dsde){
          enableDrop(true);
        }
      }
);
    }
  }
);
  final JPopupMenu contextPopupMenu=new JPopupMenu();
  final JMenuItem removeMenuItem=new JMenuItem(translate("String_Node_Str"));
  removeMenuItem.addActionListener(this);
  removeMenuItem.setActionCommand("String_Node_Str");
  JMenuItem exportSelectionMenuItem=new JMenuItem(translate("String_Node_Str"));
  exportSelectionMenuItem.setActionCommand("String_Node_Str");
  exportSelectionMenuItem.addActionListener(this);
  contextPopupMenu.add(exportSelectionMenuItem);
  contextPopupMenu.add(removeMenuItem);
  tagTree.addMouseListener(new MouseAdapter(){
    @Override public void mouseClicked(    MouseEvent e){
      if (SwingUtilities.isRightMouseButton(e)) {
        int row=tagTree.getClosestRowForLocation(e.getX(),e.getY());
        tagTree.setSelectionRow(row);
        Object tagObj=tagTree.getLastSelectedPathComponent();
        if (tagObj == null) {
          return;
        }
        if (tagObj instanceof TagNode) {
          tagObj=((TagNode)tagObj).tag;
        }
        removeMenuItem.setVisible(tagObj instanceof Tag);
        contextPopupMenu.show(e.getComponent(),e.getX(),e.getY());
      }
    }
  }
);
  TreeCellRenderer tcr=new DefaultTreeCellRenderer(){
    @Override public Component getTreeCellRendererComponent(    JTree tree,    Object value,    boolean sel,    boolean expanded,    boolean leaf,    int row,    boolean hasFocus){
      super.getTreeCellRendererComponent(tree,value,sel,expanded,leaf,row,hasFocus);
      Object val=value;
      if (val instanceof TagNode) {
        val=((TagNode)val).tag;
      }
      String type=getTagType(val);
      if (row == 0) {
        setIcon(View.getIcon("String_Node_Str"));
      }
 else       if (type != null) {
        if (type.equals("String_Node_Str") && expanded) {
          type="String_Node_Str";
        }
        setIcon(View.getIcon(type + "String_Node_Str"));
      }
 else {
      }
      String tos=value.toString();
      int sw=getFontMetrics(getFont()).stringWidth(tos);
      setPreferredSize(new Dimension(18 + sw,getPreferredSize().height));
      setUI(new BasicLabelUI());
      setOpaque(false);
      setBackgroundNonSelectionColor(Color.white);
      return this;
    }
  }
;
  tagTree.setCellRenderer(tcr);
  loadingPanel.setPreferredSize(new Dimension(30,30));
  statusPanel=new JPanel();
  statusPanel.setPreferredSize(new Dimension(1,30));
  statusPanel.setBorder(new BevelBorder(BevelBorder.LOWERED));
  statusPanel.setLayout(new BorderLayout());
  statusPanel.add(loadingPanel,BorderLayout.WEST);
  statusPanel.add(statusLabel,BorderLayout.CENTER);
  errorLogFrame=new ErrorLogFrame();
  errorNotificationButton=new JButton("String_Node_Str");
  errorNotificationButton.setIcon(View.getIcon("String_Node_Str"));
  errorNotificationButton.setBorderPainted(false);
  errorNotificationButton.setFocusPainted(false);
  errorNotificationButton.setContentAreaFilled(false);
  errorNotificationButton.setMargin(new Insets(2,2,2,2));
  errorNotificationButton.setCursor(Cursor.getPredefinedCursor(Cursor.HAND_CURSOR));
  errorNotificationButton.setActionCommand("String_Node_Str");
  errorNotificationButton.addActionListener(this);
  errorNotificationButton.setToolTipText(translate("String_Node_Str"));
  statusPanel.add(errorNotificationButton,BorderLayout.EAST);
  loadingPanel.setVisible(false);
  cnt.add(statusPanel,BorderLayout.SOUTH);
  if (swf != null) {
    for (    Tag t : swf.tags) {
      if (t instanceof JPEGTablesTag) {
        jtt=(JPEGTablesTag)t;
      }
    }
  }
  characters=new HashMap<>();
  List<Object> list2=new ArrayList<>();
  if (swf != null) {
    list2.addAll(swf.tags);
  }
  parseCharacters(list2);
  JPanel textTopPanel=new JPanel(new BorderLayout());
  textValue=new LineMarkedEditorPane();
  textTopPanel.add(new JScrollPane(textValue),BorderLayout.CENTER);
  textValue.setEditable(false);
  JPanel textButtonsPanel=new JPanel();
  textButtonsPanel.setLayout(new FlowLayout());
  textSaveButton=new JButton(translate("String_Node_Str"),View.getIcon("String_Node_Str"));
  textSaveButton.setMargin(new Insets(3,3,3,10));
  textSaveButton.setActionCommand("String_Node_Str");
  textSaveButton.addActionListener(this);
  textEditButton=new JButton(translate("String_Node_Str"),View.getIcon("String_Node_Str"));
  textEditButton.setMargin(new Insets(3,3,3,10));
  textEditButton.setActionCommand("String_Node_Str");
  textEditButton.addActionListener(this);
  textCancelButton=new JButton(translate("String_Node_Str"),View.getIcon("String_Node_Str"));
  textCancelButton.setMargin(new Insets(3,3,3,10));
  textCancelButton.setActionCommand("String_Node_Str");
  textCancelButton.addActionListener(this);
  textButtonsPanel.add(textEditButton);
  textButtonsPanel.add(textSaveButton);
  textButtonsPanel.add(textCancelButton);
  textSaveButton.setVisible(false);
  textCancelButton.setVisible(false);
  textTopPanel.add(textButtonsPanel,BorderLayout.SOUTH);
  displayWithPreview=new JPanel(new CardLayout());
  displayWithPreview.add(textTopPanel,CARDTEXTPANEL);
  final JPanel fontPanel=new JPanel();
  final JPanel fontParams2=new JPanel();
  fontParams2.setLayout(null);
  final Component ctable[][]=new Component[][]{{new JLabel(translate("String_Node_Str")),fontNameLabel=new JLabel(translate("String_Node_Str"))},{new JLabel(translate("String_Node_Str")),fontIsBoldLabel=new JLabel(translate("String_Node_Str"))},{new JLabel(translate("String_Node_Str")),fontIsItalicLabel=new JLabel(translate("String_Node_Str"))},{new JLabel(translate("String_Node_Str")),fontAscentLabel=new JLabel(translate("String_Node_Str"))},{new JLabel(translate("String_Node_Str")),fontDescentLabel=new JLabel(translate("String_Node_Str"))},{new JLabel(translate("String_Node_Str")),fontLeadingLabel=new JLabel(translate("String_Node_Str"))},{new JLabel(translate("String_Node_Str")),fontCharactersTextArea=new JTextArea("String_Node_Str")}};
  fontCharactersTextArea.setLineWrap(true);
  fontCharactersTextArea.setWrapStyleWord(true);
  fontCharactersTextArea.setOpaque(false);
  fontCharactersTextArea.setEditable(false);
  fontCharactersTextArea.setFont(new JLabel().getFont());
  final int borderLeft=10;
  final int maxws[]=new int[ctable[0].length];
  for (int x=0; x < ctable[0].length; x++) {
    int maxw=0;
    for (int y=0; y < ctable.length; y++) {
      Dimension d=ctable[y][x].getPreferredSize();
      if (d.width > maxw) {
        maxw=d.width;
      }
    }
    maxws[x]=maxw;
  }
  for (int i=0; i < ctable.length; i++) {
    fontParams2.add(ctable[i][0]);
    fontParams2.add(ctable[i][1]);
  }
  fontParams2.setPreferredSize(new Dimension(600,ctable.length * 25));
  fontChangeList=new ComponentListener(){
    @Override public void componentResized(    ComponentEvent e){
      int h=0;
      Insets is=fontPanel.getInsets();
      Insets is2=fontParams2.getInsets();
      for (int i=0; i < ctable.length; i++) {
        Dimension d=ctable[i][0].getPreferredSize();
        Dimension d2=ctable[i][1].getPreferredSize();
        ctable[i][0].setBounds(borderLeft,h,maxws[0],25);
        int w2=fontPanel.getWidth() - 3 * borderLeft - maxws[0] - is.left - is.right - 10;
        ctable[i][1].setBounds(borderLeft + maxws[0] + borderLeft,h,w2,d2.height);
        h+=Math.max(Math.max(d.height,d2.height),25);
      }
      fontParams2.setPreferredSize(new Dimension(fontPanel.getWidth() - 20,h));
      fontPanel.revalidate();
    }
    @Override public void componentMoved(    ComponentEvent e){
      componentResized(null);
    }
    @Override public void componentShown(    ComponentEvent e){
      componentResized(null);
    }
    @Override public void componentHidden(    ComponentEvent e){
      componentResized(null);
    }
  }
;
  final JPanel fontParams1=new JPanel();
  fontPanel.addComponentListener(fontChangeList);
  fontChangeList.componentResized(null);
  fontParams1.setLayout(new BoxLayout(fontParams1,BoxLayout.Y_AXIS));
  fontParams1.add(fontParams2);
  JPanel fontAddCharsPanel=new JPanel(new FlowLayout());
  fontAddCharsPanel.add(new JLabel(translate("String_Node_Str")));
  fontAddCharactersField=new MyTextField();
  fontAddCharactersField.setPreferredSize(new Dimension(150,fontAddCharactersField.getPreferredSize().height));
  fontAddCharsPanel.add(fontAddCharactersField);
  JButton fontAddCharsButton=new JButton(translate("String_Node_Str"));
  fontAddCharsButton.setActionCommand("String_Node_Str");
  fontAddCharsButton.addActionListener(this);
  fontAddCharsPanel.add(fontAddCharsButton);
  fontParams1.add(fontAddCharsPanel);
  JPanel fontSelectionPanel=new JPanel(new FlowLayout());
  fontSelectionPanel.add(new JLabel(translate("String_Node_Str")));
  String fontNames[]=GraphicsEnvironment.getLocalGraphicsEnvironment().getAvailableFontFamilyNames();
  fontSelection=new JComboBox<>(fontNames);
  fontSelection.setSelectedIndex(0);
  fontSelection.setSelectedItem("String_Node_Str");
  fontSelection.setSelectedItem("String_Node_Str");
  fontSelection.addItemListener(new ItemListener(){
    @Override public void itemStateChanged(    ItemEvent e){
      if (oldValue instanceof FontTag) {
        FontTag f=(FontTag)oldValue;
        sourceFontsMap.put(f.getFontId(),(String)fontSelection.getSelectedItem());
      }
    }
  }
);
  fontSelectionPanel.add(fontSelection);
  JPanel fontCharPanel=new JPanel();
  fontCharPanel.setLayout(new ListLayout());
  fontCharPanel.add(fontAddCharsPanel);
  fontCharPanel.add(fontSelectionPanel);
  fontParams1.add(fontCharPanel);
  fontPanel.setLayout(new BorderLayout());
  fontParams1.add(Box.createVerticalGlue());
  fontPanel.add(new JScrollPane(fontParams1),BorderLayout.CENTER);
  displayWithPreview.add(fontPanel,CARDFONTPANEL);
  Component leftComponent=null;
  displayPanel=new JPanel(new CardLayout());
  if (flashPanel != null) {
    leftComponent=flashPanel;
  }
 else {
    JPanel swtPanel=new JPanel(new BorderLayout());
    swtPanel.add(new JLabel("String_Node_Str" + translate("String_Node_Str") + "String_Node_Str",JLabel.CENTER),BorderLayout.CENTER);
    swtPanel.setBackground(Color.white);
    leftComponent=swtPanel;
  }
  textValue.setContentType("String_Node_Str");
  previewSplitPane=new JSplitPane(JSplitPane.HORIZONTAL_SPLIT);
  previewSplitPane.setDividerLocation(300);
  JPanel pan=new JPanel(new BorderLayout());
  JLabel prevLabel=new HeaderLabel(translate("String_Node_Str"));
  prevLabel.setHorizontalAlignment(SwingConstants.CENTER);
  JLabel paramsLabel=new HeaderLabel(translate("String_Node_Str"));
  paramsLabel.setHorizontalAlignment(SwingConstants.CENTER);
  pan.add(prevLabel,BorderLayout.NORTH);
  pan.add(leftComponent,BorderLayout.CENTER);
  previewSplitPane.setLeftComponent(pan);
  parametersPanel=new JPanel(new BorderLayout());
  parametersPanel.add(paramsLabel,BorderLayout.NORTH);
  parametersPanel.add(displayWithPreview,BorderLayout.CENTER);
  previewSplitPane.setRightComponent(parametersPanel);
  parametersPanel.setVisible(false);
  displayPanel.add(previewSplitPane,CARDFLASHPANEL);
  imagePanel=new ImagePanel();
  JPanel imagesCard=new JPanel(new BorderLayout());
  imagesCard.add(imagePanel,BorderLayout.CENTER);
  imageReplaceButton=new JButton(translate("String_Node_Str"),View.getIcon("String_Node_Str"));
  imageReplaceButton.setMargin(new Insets(3,3,3,10));
  imageReplaceButton.setActionCommand("String_Node_Str");
  imageReplaceButton.addActionListener(this);
  imageButtonsPanel=new JPanel(new FlowLayout());
  imageButtonsPanel.add(imageReplaceButton);
  imagesCard.add(imageButtonsPanel,BorderLayout.SOUTH);
  displayPanel.add(imagesCard,CARDIMAGEPANEL);
  JPanel shapesCard=new JPanel(new BorderLayout());
  JPanel previewPanel=new JPanel(new BorderLayout());
  previewImagePanel=new ImagePanel();
  previewPanel.add(previewImagePanel,BorderLayout.CENTER);
  JLabel prevIntLabel=new HeaderLabel(translate("String_Node_Str"));
  prevIntLabel.setHorizontalAlignment(SwingConstants.CENTER);
  previewPanel.add(prevIntLabel,BorderLayout.NORTH);
  shapesCard.add(previewPanel,BorderLayout.CENTER);
  displayPanel.add(shapesCard,CARDDRAWPREVIEWPANEL);
  swfPreviewPanel=new SWFPreviwPanel();
  displayPanel.add(swfPreviewPanel,CARDSWFPREVIEWPANEL);
  displayPanel.add(new JPanel(),CARDEMPTYPANEL);
  if (actionPanel != null) {
    displayPanel.add(actionPanel,CARDACTIONSCRIPTPANEL);
  }
  if (abcPanel != null) {
    displayPanel.add(abcPanel,CARDACTIONSCRIPTPANEL);
  }
  CardLayout cl=(CardLayout)(displayPanel.getLayout());
  cl.show(displayPanel,CARDEMPTYPANEL);
  searchPanel=new JPanel();
  searchPanel.setLayout(new BorderLayout());
  searchPanel.add(filterField,BorderLayout.CENTER);
  searchPanel.add(new JLabel(View.getIcon("String_Node_Str")),BorderLayout.WEST);
  JLabel closeSearchButton=new JLabel(View.getIcon("String_Node_Str"));
  closeSearchButton.addMouseListener(new MouseAdapter(){
    @Override public void mouseClicked(    MouseEvent e){
      filterField.setText("String_Node_Str");
      doFilter();
      searchPanel.setVisible(false);
    }
  }
);
  searchPanel.add(closeSearchButton,BorderLayout.EAST);
  JPanel pan1=new JPanel(new BorderLayout());
  pan1.add(new JScrollPane(tagTree),BorderLayout.CENTER);
  pan1.add(searchPanel,BorderLayout.SOUTH);
  filterField.setActionCommand("String_Node_Str");
  filterField.addActionListener(this);
  searchPanel.setVisible(false);
  filterField.getDocument().addDocumentListener(new DocumentListener(){
    @Override public void changedUpdate(    DocumentEvent e){
      warn();
    }
    @Override public void removeUpdate(    DocumentEvent e){
      warn();
    }
    @Override public void insertUpdate(    DocumentEvent e){
      warn();
    }
    public void warn(){
      doFilter();
    }
  }
);
  splitPane2=new JSplitPane(JSplitPane.VERTICAL_SPLIT,pan1,detailPanel);
  splitPane1=new JSplitPane(JSplitPane.HORIZONTAL_SPLIT,splitPane2,displayPanel);
  if (swf == null) {
    JPanel welcomePanel=new JPanel();
    welcomePanel.setLayout(new BoxLayout(welcomePanel,BoxLayout.Y_AXIS));
    JLabel welcomeToLabel=new JLabel(translate("String_Node_Str"));
    welcomeToLabel.setFont(welcomeToLabel.getFont().deriveFont(40));
    welcomeToLabel.setAlignmentX(0.5f);
    JPanel appNamePanel=new JPanel(new FlowLayout());
    JLabel jpLabel=new JLabel("String_Node_Str");
    jpLabel.setAlignmentX(0.5f);
    jpLabel.setForeground(new Color(0,0,160));
    jpLabel.setFont(new Font("String_Node_Str",Font.BOLD,50));
    jpLabel.setHorizontalAlignment(SwingConstants.CENTER);
    appNamePanel.add(jpLabel);
    JLabel ffLabel=new JLabel("String_Node_Str");
    ffLabel.setAlignmentX(0.5f);
    ffLabel.setFont(new Font("String_Node_Str",Font.BOLD,50));
    ffLabel.setHorizontalAlignment(SwingConstants.CENTER);
    appNamePanel.add(ffLabel);
    JLabel decLabel=new JLabel("String_Node_Str");
    decLabel.setAlignmentX(0.5f);
    decLabel.setForeground(Color.red);
    decLabel.setFont(new Font("String_Node_Str",Font.BOLD,50));
    decLabel.setHorizontalAlignment(SwingConstants.CENTER);
    appNamePanel.add(decLabel);
    appNamePanel.setAlignmentX(0.5f);
    welcomePanel.add(Box.createGlue());
    welcomePanel.add(welcomeToLabel);
    welcomePanel.add(appNamePanel);
    JLabel startLabel=new JLabel(translate("String_Node_Str"));
    startLabel.setAlignmentX(0.5f);
    startLabel.setFont(startLabel.getFont().deriveFont(30));
    welcomePanel.add(startLabel);
    welcomePanel.add(Box.createGlue());
    cnt.add(welcomePanel,BorderLayout.CENTER);
  }
 else {
    cnt.add(splitPane1,BorderLayout.CENTER);
  }
  splitPane1.addPropertyChangeListener(JSplitPane.DIVIDER_LOCATION_PROPERTY,new PropertyChangeListener(){
    @Override public void propertyChange(    PropertyChangeEvent pce){
      if (splitsInited) {
        Configuration.setConfig("String_Node_Str",pce.getNewValue());
      }
    }
  }
);
  splitPane2.addPropertyChangeListener(JSplitPane.DIVIDER_LOCATION_PROPERTY,new PropertyChangeListener(){
    @Override public void propertyChange(    PropertyChangeEvent pce){
      if (detailPanel.isVisible()) {
        Configuration.setConfig("String_Node_Str",pce.getNewValue());
      }
    }
  }
);
  View.centerScreen(this);
  tagTree.addKeyListener(new KeyAdapter(){
    @Override public void keyPressed(    KeyEvent e){
      if ((e.getKeyCode() == 'F') && (e.isControlDown())) {
        searchPanel.setVisible(true);
        filterField.requestFocusInWindow();
      }
    }
  }
);
  detailPanel.setVisible(false);
  enableDrop(true);
  Logger logger=Logger.getLogger("String_Node_Str");
  logger.addHandler(errorLogFrame.getHandler());
  logger.addHandler(new Handler(){
    private Timer timer=null;
    private int pos=0;
    @Override public void publish(    final LogRecord record){
      SwingUtilities.invokeLater(new Runnable(){
        @Override public void run(){
          if (record.getLevel() == Level.SEVERE) {
            errorNotificationButton.setIcon(View.getIcon("String_Node_Str"));
            errorNotificationButton.setToolTipText(translate("String_Node_Str"));
            if (timer != null) {
              timer.cancel();
            }
            timer=new Timer();
            timer.schedule(new TimerTask(){
              @Override public void run(){
                View.execInEventDispatch(new Runnable(){
                  @Override public void run(){
                    pos++;
                    if ((pos % 2) == 0 || (pos >= 4)) {
                      errorNotificationButton.setIcon(View.getIcon("String_Node_Str"));
                    }
 else {
                      errorNotificationButton.setIcon(null);
                      errorNotificationButton.setSize(16,16);
                    }
                  }
                }
);
                if (pos >= 4) {
                  cancel();
                }
              }
            }
,500,500);
          }
        }
      }
);
    }
    @Override public void flush(){
    }
    @Override public void close() throws SecurityException {
    }
  }
);
}