    public AnnotatorFrame (TableSettings settings) {
        File resource = new File (RESOURCESFOLDER);
        if (!resource.exists()) {
            resource.mkdir();
        }
        File locations = new File (LOCATIONFILE);
        if (!locations.exists()) {
            try {
                locations.createNewFile();
            } catch (IOException e) {
                e.printStackTrace();  
            }
        }
        tableSettings = settings;
        cache = new ArrayList<CacheData>();
        cacheBu = new ArrayList<CacheData>();
        parser = new KafSaxParser();
        tagLexicon = new Lexicon();
        tagLexicon.parseFile(LEXICONFILE);
        TripleConfig = new TripleConfig(TripleCONFIGFILE);
        theTag1Set = new ArrayList<String>();
        theTag2Set = new ArrayList<String>();
        theTag3Set = new ArrayList<String>();
        theTag4Set = new ArrayList<String>();
        theTag5Set = new ArrayList<String>();
        theTag6Set = new ArrayList<String>();
        theTag7Set = new ArrayList<String>();
        theTag8Set = new ArrayList<String>();
        clipboardTag = "";
        clipboardTagId = -1;
        inputName = "";
        messagePanel = new JPanel();
        messagePanel.setMinimumSize(new Dimension(400, 320));
        messagePanel.setPreferredSize(new Dimension(400, 320));
        messagePanel.setMaximumSize(new Dimension(400, 320));
        messageLabel = new JLabel("Messages:");
        messageLabel.setMinimumSize(new Dimension(80, 25));
        messageLabel.setPreferredSize(new Dimension(80, 25));
        messageField = new JTextField();
        messageField.setEditable(false);
        messageField.setMinimumSize(new Dimension(300, 25));
        messageField.setPreferredSize(new Dimension(300, 25));
        messageField.setMaximumSize(new Dimension(400, 30));
        fullTextLabel = new JLabel("Text:");
        fullTextLabel.setMinimumSize(new Dimension(80, 25));
        fullTextLabel.setPreferredSize(new Dimension(80, 25));
        fullTextField = new JTextArea();
        fullTextField.setEditable(false);
        fullTextField.setBackground(Colors.BackGroundColor);
        fullTextField.setMinimumSize(new Dimension(300, 200));
        fullTextField.setPreferredSize(new Dimension(300, 200));
        fullTextField.setMaximumSize(new Dimension(400, 200));
        fullTextField.setLineWrap(true);
        fullTextField.setWrapStyleWord(true);
        fullTextField.addMouseListener(new MouseAdapter() {
            public void mousePressed(MouseEvent e) {
                switch(e.getModifiers()) {
                    case InputEvent.BUTTON3_MASK: {
                        String word = fullTextField.getSelectedText();
                        table.searchForString(AnnotationTableModel.ROWWORDTOKEN, word);
                    }
                }
            }
        });
        JScrollPane scrollableTextArea = new JScrollPane (fullTextField,
                JScrollPane.VERTICAL_SCROLLBAR_ALWAYS, JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS);
        scrollableTextArea.setMinimumSize(new Dimension(300, 200));
        scrollableTextArea.setPreferredSize(new Dimension(300, 200));
        scrollableTextArea.setMaximumSize(new Dimension(400, 200));
        kafFileLabel = new JLabel("KAF file:");
        kafFileLabel.setMinimumSize(new Dimension(80, 25));
        kafFileLabel.setPreferredSize(new Dimension(80, 25));
        kafFileField = new JTextField();
        kafFileField.setEditable(false);
        kafFileField.setBackground(Colors.BackGroundColor);
        kafFileField.setMinimumSize(new Dimension(300, 25));
        kafFileField.setPreferredSize(new Dimension(300, 25));
        kafFileField.setMaximumSize(new Dimension(400, 30));
        tagFileLabel = new JLabel("TAG file:");
        tagFileLabel.setMinimumSize(new Dimension(80, 25));
        tagFileLabel.setPreferredSize(new Dimension(80, 25));
        tagFileField = new JTextField();
        tagFileField.setEditable(false);
        tagFileField.setBackground(Colors.BackGroundColor);
        tagFileField.setMinimumSize(new Dimension(300, 25));
        tagFileField.setPreferredSize(new Dimension(300, 25));
        tagFileField.setMaximumSize(new Dimension(400, 30));
        tagSetFileLabel = new JLabel("TAG set:");
        tagSetFileLabel.setMinimumSize(new Dimension(80, 25));
        tagSetFileLabel.setPreferredSize(new Dimension(80, 25));
        tagSetFileField = new JTextField();
        tagSetFileField.setEditable(false);
        tagSetFileField.setBackground(Colors.BackGroundColor);
        tagSetFileField.setMinimumSize(new Dimension(300, 25));
        tagSetFileField.setPreferredSize(new Dimension(300, 25));
        tagSetFileField.setMaximumSize(new Dimension(400, 30));
        messagePanel.setLayout(new GridBagLayout());
        messagePanel.add(fullTextLabel, new GridBagConstraints(0, 0, 1, 1, 0, 0
                ,GridBagConstraints.NORTH, GridBagConstraints.NONE, new Insets(10, 1, 1, 1), 0, 0));
        messagePanel.add(scrollableTextArea, new GridBagConstraints(1, 0, 1, 1, 0.3, 0.3
                , GridBagConstraints.NORTH, GridBagConstraints.BOTH, new Insets(10, 1, 1, 1), 0, 0));
        messagePanel.add(messageLabel, new GridBagConstraints(0, 1, 1, 1, 0, 0
                ,GridBagConstraints.NORTH, GridBagConstraints.NONE, new Insets(10, 1, 1, 1), 0, 0));
        messagePanel.add(messageField, new GridBagConstraints(1, 1, 1, 1, 0.3, 0.3
                , GridBagConstraints.NORTH, GridBagConstraints.BOTH, new Insets(10, 1, 1, 1), 0, 0));
        messagePanel.add(kafFileLabel, new GridBagConstraints(0, 2, 1, 1, 0, 0
                ,GridBagConstraints.CENTER, GridBagConstraints.NONE, new Insets(1, 1, 1, 1), 0, 0));
        messagePanel.add(kafFileField, new GridBagConstraints(1, 2, 1, 1, 0.3, 0.3
                , GridBagConstraints.CENTER, GridBagConstraints.BOTH, new Insets(1, 1, 1, 1), 0, 0));
        messagePanel.add(tagFileLabel, new GridBagConstraints(0, 3, 1, 1, 0, 0
                ,GridBagConstraints.CENTER, GridBagConstraints.NONE, new Insets(1, 1, 1, 1), 0, 0));
        messagePanel.add(tagFileField, new GridBagConstraints(1, 3, 1, 1, 0.3, 0.3
                , GridBagConstraints.CENTER, GridBagConstraints.BOTH, new Insets(1, 1, 1, 1), 0, 0));
        messagePanel.add(tagSetFileLabel, new GridBagConstraints(0, 4, 1, 1, 0, 0
                ,GridBagConstraints.CENTER, GridBagConstraints.NONE, new Insets(1, 1, 1, 1), 0, 0));
        messagePanel.add(tagSetFileField, new GridBagConstraints(1, 4, 1, 1, 0.3, 0.3
                            ,GridBagConstraints.CENTER, GridBagConstraints.BOTH, new Insets(1, 1, 1, 1), 0, 0));
        menuButtons = new JMenuBar();
        fileMenu = new JMenu("File");
        fileMenu.setMnemonic('f');
        openMenuItem = new JMenuItem("Open KAF file",'o');
        openMenuItem.addActionListener(new ActionListener() {
           public void actionPerformed(ActionEvent e) {
              Cursor current_cursor = getCursor();
              setCursor(new Cursor ( Cursor.WAIT_CURSOR ));
              DO_loadKafFile();
              setCursor(current_cursor);
           }
        });
        fileMenu.add(openMenuItem);
        readTagFileMenuItem = new JMenuItem("Load TAG file",'l');
        readTagFileMenuItem.addActionListener(new ActionListener() {
           public void actionPerformed(ActionEvent e) {
              Cursor current_cursor = getCursor();
              setCursor(new Cursor ( Cursor.WAIT_CURSOR ));
              DO_loadTagFile();
              setCursor(current_cursor);
           }
        });
        fileMenu.add(readTagFileMenuItem);
        readTagSetMenuItem = new JMenuItem("Load TAG set", 't');
        readTagSetMenuItem.setMnemonic('t');
        readTagSetMenuItem.addActionListener(new ActionListener() {
           public void actionPerformed(ActionEvent e) {
              Cursor current_cursor = getCursor();
              setCursor(new Cursor ( Cursor.WAIT_CURSOR ));
              DO_readTagSet();
              setCursor(current_cursor);
           }
        });
        fileMenu.add(readTagSetMenuItem);
        readLexiconMenuItem = new JMenuItem("Load lexicon file", 'x');                
        readLexiconMenuItem.addActionListener(new ActionListener() {
           public void actionPerformed(ActionEvent e) {
              Cursor current_cursor = getCursor();
              setCursor(new Cursor ( Cursor.WAIT_CURSOR ));
              DO_readLexicon();
              setCursor(current_cursor);
           }
        });
        fileMenu.add(readLexiconMenuItem);
        saveTagMenuItem = new JMenuItem("Save tagging",'s');
        saveTagMenuItem.addActionListener(new ActionListener() {
           public void actionPerformed(ActionEvent e) {
              Cursor current_cursor = getCursor();
              setCursor(new Cursor ( Cursor.WAIT_CURSOR ));
              int ok = -1;
              ok = DO_saveTagFile();
              DO_saveLexiconFile();
              if (ok==0) {
                  messageField.setText("Tagging data saved");
              }
              else {
                  messageField.setText("Warning! Tagging data NOT saved");
              }
              setCursor(current_cursor);
           }
        });
        fileMenu.add(saveTagMenuItem);
        saveAsMenu = new JMenu("Save as");
        saveAsMenu.setMnemonic('a');
        saveTagAsMenuItem = new JMenuItem("Tagging",'t');
        saveTagAsMenuItem.addActionListener(new ActionListener() {
           public void actionPerformed(ActionEvent e) {
              Cursor current_cursor = getCursor();
              setCursor(new Cursor ( Cursor.WAIT_CURSOR ));
              DO_saveTagFileAs();
              setCursor(current_cursor);
           }
        });
        saveAsMenu.add(saveTagAsMenuItem);
        saveLexiconAsMenuItem = new JMenuItem("Lexicon",'l');
        saveLexiconAsMenuItem.addActionListener(new ActionListener() {
           public void actionPerformed(ActionEvent e) {
              Cursor current_cursor = getCursor();
              setCursor(new Cursor ( Cursor.WAIT_CURSOR ));
              DO_saveLexiconFileAs();
              setCursor(current_cursor);
           }
        });
        saveAsMenu.add(saveLexiconAsMenuItem);
        fileMenu.add(saveAsMenu);
        saveTrainMenuItem = new JMenuItem("Export tags to train format",'e');
        saveTrainMenuItem.addActionListener(new ActionListener() {
           public void actionPerformed(ActionEvent e) {
              Cursor current_cursor = getCursor();
              setCursor(new Cursor ( Cursor.WAIT_CURSOR ));
              DO_saveTrainFile();
              setCursor(current_cursor);
           }
        });
        fileMenu.add(saveTrainMenuItem);
        convertTagsToTriples = new JMenuItem("Export to Triples",'e');
        convertTagsToTriples.addActionListener(new ActionListener() {
           public void actionPerformed(ActionEvent e) {
              Cursor current_cursor = getCursor();
              setCursor(new Cursor ( Cursor.WAIT_CURSOR ));
              DO_exportToTriples();
              setCursor(current_cursor);
           }
        });
        fileMenu.add(convertTagsToTriples);
        outputMostCommonSubsumer = new JMenuItem("Export wordnet classes",'w');
        outputMostCommonSubsumer.addActionListener(new ActionListener() {
           public void actionPerformed(ActionEvent e) {
              Cursor current_cursor = getCursor();
              setCursor(new Cursor ( Cursor.WAIT_CURSOR ));
              DO_exportMostCommonSubsumers();
              setCursor(current_cursor);
           }
        });
        fileMenu.add(outputMostCommonSubsumer);
        quitMenuItem = new JMenuItem("Quit",'q');
        quitMenuItem.addActionListener(new ActionListener() {
           public void actionPerformed(ActionEvent e) {
               if (DO_checkSave()==2) {
                    System.exit(0);
               }
           }
        });
        fileMenu.add(quitMenuItem);
        menuButtons.add(fileMenu);
        searchMenu = new JMenu("Search");
        searchMenu.setMnemonic('s');
        searchWordMenuItem = new JMenuItem("Word",'w');
        searchWordMenuItem.addActionListener(new ActionListener() {
           public void actionPerformed(ActionEvent e) {
              Cursor current_cursor = getCursor();
              setCursor(new Cursor ( Cursor.WAIT_CURSOR ));
              DO_searchWord();
              setCursor(current_cursor);
           }
        });
        searchMenu.add(searchWordMenuItem);
        searchLastTagMenuItem = new JMenuItem("Last tag",'l');
        searchLastTagMenuItem.addActionListener(new ActionListener() {
           public void actionPerformed(ActionEvent e) {
              Cursor current_cursor = getCursor();
              setCursor(new Cursor ( Cursor.WAIT_CURSOR ));
              DO_searchLastTag();
              setCursor(current_cursor);
           }
        });
        searchMenu.add(searchLastTagMenuItem);
        searchTagMenuItem = new JMenuItem("Tag",'t');
        searchTagMenuItem.addActionListener(new ActionListener() {
           public void actionPerformed(ActionEvent e) {
              Cursor current_cursor = getCursor();
              setCursor(new Cursor ( Cursor.WAIT_CURSOR ));
              DO_searchTag();
              setCursor(current_cursor);
           }
        });
        searchMenu.add(searchTagMenuItem);
        searchWordAgainMenuItem = new JMenuItem("Next Word",'n');
        searchWordAgainMenuItem.addActionListener(new ActionListener() {
           public void actionPerformed(ActionEvent e) {
              Cursor current_cursor = getCursor();
              setCursor(new Cursor ( Cursor.WAIT_CURSOR ));
              DO_searchWordAgain();
              setCursor(current_cursor);
           }
        });
        searchMenu.add(searchWordAgainMenuItem);
        searchTagAgainMenuItem = new JMenuItem("Next Tag",'x');
        searchTagAgainMenuItem.addActionListener(new ActionListener() {
           public void actionPerformed(ActionEvent e) {
              Cursor current_cursor = getCursor();
              setCursor(new Cursor ( Cursor.WAIT_CURSOR ));
              DO_searchTagAgain();
              setCursor(current_cursor);
           }
        });
        searchMenu.add(searchTagAgainMenuItem);
        searchNotDoneMenuItem = new JMenuItem("No Confirm",'c');
        searchNotDoneMenuItem.addActionListener(new ActionListener() {
           public void actionPerformed(ActionEvent e) {
              Cursor current_cursor = getCursor();
              setCursor(new Cursor ( Cursor.WAIT_CURSOR ));
              DO_notDone();
              setCursor(current_cursor);
           }
        });
        searchMenu.add(searchNotDoneMenuItem);
        menuButtons.add(searchMenu);
        otherMenu = new JMenu("Other");
        otherMenu.setMnemonic('o');
        confirmMenuItem = new JMenuItem("Do Confirm",'d');
        confirmMenuItem.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e) {
                Cursor current_cursor = getCursor();
                setCursor(new Cursor(Cursor.WAIT_CURSOR));
                DO_Selected();
                setCursor(current_cursor);
            }
        });
        otherMenu.add(confirmMenuItem);
        unconfirmMenuItem = new JMenuItem("Undo Confirm",'u');
        unconfirmMenuItem.addActionListener(new ActionListener() {
           public void actionPerformed(ActionEvent e) {
              Cursor current_cursor = getCursor();
              setCursor(new Cursor ( Cursor.WAIT_CURSOR ));
              DO_Unselected();
              setCursor(current_cursor);
           }
        });
        otherMenu.add(unconfirmMenuItem);
        removeAllTagsMenuItem = new JMenuItem("Remove all annotations",'r');
        removeAllTagsMenuItem.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e) {
                Cursor current_cursor = getCursor();
                setCursor(new Cursor ( Cursor.WAIT_CURSOR ));
                DO_unTagAllTokens();
                setCursor(current_cursor);
            }
        });
        otherMenu.add(removeAllTagsMenuItem);
        undoMenuItem = new JMenuItem("Undo",'u');
        undoMenuItem.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e) {
                Cursor current_cursor = getCursor();
                setCursor(new Cursor ( Cursor.WAIT_CURSOR ));
                DO_undo();
                setCursor(current_cursor);
            }
        });
        otherMenu.add(undoMenuItem);
        menuButtons.add(otherMenu);
        tag1Menu = new JMenu("Tag level 1");
        tag1Menu.setMnemonic('1');
        tag1TokenMenu = new JMenu("Tag tokens");
        tag1TokenMenu.setMnemonic('t');
        tag1Menu.add(tag1TokenMenu);
        tag1LemmaMenu = new JMenu("Tag types");
        tag1LemmaMenu.setMnemonic('y');
        tag1Menu.add(tag1LemmaMenu);
        tag1ConstituentMenu = new JMenu("Tag constituent");
        tag1ConstituentMenu.setMnemonic('c');
        tag1Menu.add(tag1ConstituentMenu);
        tag1SentenceMenu = new JMenu("Tag sentence");
        tag1SentenceMenu.setMnemonic('s');
        tag1Menu.add(tag1SentenceMenu);
        JMenuItem untagItem = new JMenuItem ("UNTAG", 'u');
        untagItem.addActionListener(new ActionListener() {
           public void actionPerformed(ActionEvent e) {
              Cursor current_cursor = getCursor();
              setCursor(new Cursor ( Cursor.WAIT_CURSOR ));
              DO_unTagTokens(1);
              setCursor(current_cursor);
           }
        });
        tag1Menu.add(untagItem);
        JMenuItem mergeTagIdsItem = new JMenuItem ("Merge Tag Ids", 'm');
        mergeTagIdsItem.addActionListener(new ActionListener() {
           public void actionPerformed(ActionEvent e) {
              Cursor current_cursor = getCursor();
              setCursor(new Cursor ( Cursor.WAIT_CURSOR ));
              DO_mergeTagIds(1);
              setCursor(current_cursor);
           }
        });
        tag1Menu.add(mergeTagIdsItem);
        JMenuItem separateTagIdsItem = new JMenuItem ("Separate Tag Ids", 's');
        separateTagIdsItem.addActionListener(new ActionListener() {
           public void actionPerformed(ActionEvent e) {
              Cursor current_cursor = getCursor();
              setCursor(new Cursor ( Cursor.WAIT_CURSOR ));
              DO_separateTagIds(1);
              setCursor(current_cursor);
           }
        });
        tag1Menu.add(separateTagIdsItem);
        JMenuItem editTagIdsItem = new JMenuItem ("Edit Tag Id", 'e');
        editTagIdsItem.addActionListener(new ActionListener() {
           public void actionPerformed(ActionEvent e) {
              Cursor current_cursor = getCursor();
              setCursor(new Cursor ( Cursor.WAIT_CURSOR ));
              DO_editTagIds(1);
              setCursor(current_cursor);
           }
        });
        tag1Menu.add(editTagIdsItem);
        JMenuItem copyTagItem = new JMenuItem ("Copy Tag & Id", 'c');
        copyTagItem.addActionListener(new ActionListener() {
           public void actionPerformed(ActionEvent e) {
              Cursor current_cursor = getCursor();
              setCursor(new Cursor ( Cursor.WAIT_CURSOR ));
              DO_copyTag(1);
              setCursor(current_cursor);
           }
        });
        tag1Menu.add(copyTagItem);
        JMenuItem pastTagItem = new JMenuItem ("Past Tag & Id", 'p');
        pastTagItem.addActionListener(new ActionListener() {
           public void actionPerformed(ActionEvent e) {
              Cursor current_cursor = getCursor();
              setCursor(new Cursor ( Cursor.WAIT_CURSOR ));
              DO_pastTag(1);
              setCursor(current_cursor);
           }
        });
        tag1Menu.add(pastTagItem);
        JMenuItem selectLexTagMenuItem = new JMenuItem("Dominant Tag",'l');
        selectLexTagMenuItem.addActionListener(new ActionListener() {
                public void actionPerformed(ActionEvent e) {
                   Cursor current_cursor = getCursor();
                   setCursor(new Cursor ( Cursor.WAIT_CURSOR ));
                   DO_selectLexicalTag();
                   setCursor(current_cursor);
                }
        });
        tag1Menu.add(selectLexTagMenuItem);
        newTag1MenuItem = new JMenuItem("Add Tag",'a');
        newTag1MenuItem.addActionListener(new ActionListener() {
           public void actionPerformed(ActionEvent e) {
              Cursor current_cursor = getCursor();
              setCursor(new Cursor ( Cursor.WAIT_CURSOR ));
              DO_makeNewTag1();
              setCursor(current_cursor);
           }
        });
        tag1Menu.add(newTag1MenuItem);
        menuButtons.add(tag1Menu);
        tag2Menu = new JMenu("Tag level 2");
        tag2Menu.setMnemonic('2');
        tag2TokenMenu = new JMenu("Tag tokens");
        tag2TokenMenu.setMnemonic('t');
        tag2Menu.add(tag2TokenMenu);
        tag2LemmaMenu = new JMenu("Tag types");
        tag2LemmaMenu.setMnemonic('y');
        tag2Menu.add(tag2LemmaMenu);
        tag2ConstituentMenu = new JMenu("Tag constituent");
        tag2ConstituentMenu.setMnemonic('c');
        tag2Menu.add(tag2ConstituentMenu);
        tag2SentenceMenu = new JMenu("Tag sentence");
        tag2SentenceMenu.setMnemonic('s');
        tag2Menu.add(tag2SentenceMenu);
        JMenuItem untagItem2 = new JMenuItem ("UNTAG", 'u');
        untagItem2.addActionListener(new ActionListener() {
           public void actionPerformed(ActionEvent e) {
              Cursor current_cursor = getCursor();
              setCursor(new Cursor ( Cursor.WAIT_CURSOR ));
              DO_unTagTokens(2);
              setCursor(current_cursor);
           }
        });
        tag2Menu.add(untagItem2);
        JMenuItem mergeTagIdsItem2 = new JMenuItem ("Merge Tag Ids", 'm');
        mergeTagIdsItem2.addActionListener(new ActionListener() {
           public void actionPerformed(ActionEvent e) {
              Cursor current_cursor = getCursor();
              setCursor(new Cursor ( Cursor.WAIT_CURSOR ));
              DO_mergeTagIds(2);
              setCursor(current_cursor);
           }
        });
        tag2Menu.add(mergeTagIdsItem2);
        JMenuItem separateTagIdsItem2 = new JMenuItem ("Separate Tag Ids", 's');
        separateTagIdsItem2.addActionListener(new ActionListener() {
           public void actionPerformed(ActionEvent e) {
              Cursor current_cursor = getCursor();
              setCursor(new Cursor ( Cursor.WAIT_CURSOR ));
              DO_separateTagIds(2);
              setCursor(current_cursor);
           }
        });
        tag2Menu.add(separateTagIdsItem2);
        JMenuItem editTagIdsItem2 = new JMenuItem ("Edit Tag Id", 'e');
        editTagIdsItem2.addActionListener(new ActionListener() {
           public void actionPerformed(ActionEvent e) {
              Cursor current_cursor = getCursor();
              setCursor(new Cursor ( Cursor.WAIT_CURSOR ));
              DO_editTagIds(2);
              setCursor(current_cursor);
           }
        });
        tag2Menu.add(editTagIdsItem2);
        JMenuItem copyTagItem2 = new JMenuItem ("Copy Tag & Id", 'c');
        copyTagItem2.addActionListener(new ActionListener() {
           public void actionPerformed(ActionEvent e) {
              Cursor current_cursor = getCursor();
              setCursor(new Cursor ( Cursor.WAIT_CURSOR ));
              DO_copyTag(2);
              setCursor(current_cursor);
           }
        });
        tag2Menu.add(copyTagItem2);
        JMenuItem pastTagItem2 = new JMenuItem ("Past Tag & Id", 'p');
        pastTagItem2.addActionListener(new ActionListener() {
           public void actionPerformed(ActionEvent e) {
              Cursor current_cursor = getCursor();
              setCursor(new Cursor ( Cursor.WAIT_CURSOR ));
              DO_pastTag(2);
              setCursor(current_cursor);
           }
        });
        tag2Menu.add(pastTagItem2);
        newTag2MenuItem = new JMenuItem("Add Tag",'a');
        newTag2MenuItem.addActionListener(new ActionListener() {
           public void actionPerformed(ActionEvent e) {
              Cursor current_cursor = getCursor();
              setCursor(new Cursor ( Cursor.WAIT_CURSOR ));
              DO_makeNewTag2();
              setCursor(current_cursor);
           }
        });
        tag2Menu.add(newTag2MenuItem);
        if (!tableSettings.hideTag2) {
            menuButtons.add(tag2Menu);
        }
        tag3Menu = new JMenu("Tag level 3");
        tag3Menu.setMnemonic('3');
        tag3TokenMenu = new JMenu("Tag tokens");
        tag3Menu.add(tag3TokenMenu);
        tag3LemmaMenu = new JMenu("Tag types");
        tag3LemmaMenu.setMnemonic('y');
        tag3Menu.add(tag3LemmaMenu);
        tag3ConstituentMenu = new JMenu("Tag constituent");
        tag3ConstituentMenu.setMnemonic('c');
        tag3Menu.add(tag3ConstituentMenu);
        tag3SentenceMenu = new JMenu("Tag sentence");
        tag3SentenceMenu.setMnemonic('s');
        tag3Menu.add(tag3SentenceMenu);
        JMenuItem untagItem3 = new JMenuItem ("UNTAG", 'u');
        untagItem3.addActionListener(new ActionListener() {
           public void actionPerformed(ActionEvent e) {
              Cursor current_cursor = getCursor();
              setCursor(new Cursor ( Cursor.WAIT_CURSOR ));
              DO_unTagTokens(3);
              setCursor(current_cursor);
           }
        });
        tag3Menu.add(untagItem3);
        JMenuItem mergeTagIdsItem3 = new JMenuItem ("Merge Tag Ids", 'm');
        mergeTagIdsItem3.addActionListener(new ActionListener() {
           public void actionPerformed(ActionEvent e) {
              Cursor current_cursor = getCursor();
              setCursor(new Cursor ( Cursor.WAIT_CURSOR ));
              DO_mergeTagIds(3);
              setCursor(current_cursor);
           }
        });
        tag3Menu.add(mergeTagIdsItem3);
        JMenuItem separateTagIdsItem3 = new JMenuItem ("Separate Tag Ids", 's');
        separateTagIdsItem3.addActionListener(new ActionListener() {
           public void actionPerformed(ActionEvent e) {
              Cursor current_cursor = getCursor();
              setCursor(new Cursor ( Cursor.WAIT_CURSOR ));
              DO_separateTagIds(3);
              setCursor(current_cursor);
           }
        });
        tag3Menu.add(separateTagIdsItem3);
        JMenuItem editTagIdsItem3 = new JMenuItem ("Edit Tag Id", 'e');
        editTagIdsItem3.addActionListener(new ActionListener() {
           public void actionPerformed(ActionEvent e) {
              Cursor current_cursor = getCursor();
              setCursor(new Cursor ( Cursor.WAIT_CURSOR ));
              DO_editTagIds(3);
              setCursor(current_cursor);
           }
        });
        tag3Menu.add(editTagIdsItem3);
        JMenuItem copyTagItem3 = new JMenuItem ("Copy Tag & Id", 'c');
        copyTagItem3.addActionListener(new ActionListener() {
           public void actionPerformed(ActionEvent e) {
              Cursor current_cursor = getCursor();
              setCursor(new Cursor ( Cursor.WAIT_CURSOR ));
              DO_copyTag(3);
              setCursor(current_cursor);
           }
        });
        tag3Menu.add(copyTagItem3);
        JMenuItem pastTagItem3 = new JMenuItem ("Past Tag & Id", 'p');
        pastTagItem3.addActionListener(new ActionListener() {
           public void actionPerformed(ActionEvent e) {
              Cursor current_cursor = getCursor();
              setCursor(new Cursor ( Cursor.WAIT_CURSOR ));
              DO_pastTag(3);
              setCursor(current_cursor);
           }
        });
        tag3Menu.add(pastTagItem3);
        newTag3MenuItem = new JMenuItem("Add Tag",'a');
        newTag3MenuItem.addActionListener(new ActionListener() {
           public void actionPerformed(ActionEvent e) {
              Cursor current_cursor = getCursor();
              setCursor(new Cursor ( Cursor.WAIT_CURSOR ));
              DO_makeNewTag3();
              setCursor(current_cursor);
           }
        });
        tag3Menu.add(newTag3MenuItem);
        if (!tableSettings.hideTag3){
            menuButtons.add(tag3Menu);
        }
        tag4Menu = new JMenu("Tag level 4");
        tag4Menu.setMnemonic('4');
        tag4TokenMenu = new JMenu("Tag tokens");
        tag4Menu.add(tag4TokenMenu);
        tag4LemmaMenu = new JMenu("Tag types");
        tag4LemmaMenu.setMnemonic('y');
        tag4Menu.add(tag4LemmaMenu);
        tag4ConstituentMenu = new JMenu("Tag constituent");
        tag4ConstituentMenu.setMnemonic('c');
        tag4Menu.add(tag4ConstituentMenu);
        tag4SentenceMenu = new JMenu("Tag sentence");
        tag4SentenceMenu.setMnemonic('s');
        tag4Menu.add(tag4SentenceMenu);
        JMenuItem untagItem4 = new JMenuItem ("UNTAG", 'u');
        untagItem4.addActionListener(new ActionListener() {
           public void actionPerformed(ActionEvent e) {
              Cursor current_cursor = getCursor();
              setCursor(new Cursor ( Cursor.WAIT_CURSOR ));
              DO_unTagTokens(4);
              setCursor(current_cursor);
           }
        });
        tag4Menu.add(untagItem4);
        JMenuItem mergeTagIdsItem4 = new JMenuItem ("Merge Tag Ids", 'm');
        mergeTagIdsItem4.addActionListener(new ActionListener() {
           public void actionPerformed(ActionEvent e) {
              Cursor current_cursor = getCursor();
              setCursor(new Cursor ( Cursor.WAIT_CURSOR ));
              DO_mergeTagIds(4);
              setCursor(current_cursor);
           }
        });
        tag4Menu.add(mergeTagIdsItem4);
        JMenuItem separateTagIdsItem4 = new JMenuItem ("Separate Tag Ids", 's');
        separateTagIdsItem4.addActionListener(new ActionListener() {
           public void actionPerformed(ActionEvent e) {
              Cursor current_cursor = getCursor();
              setCursor(new Cursor ( Cursor.WAIT_CURSOR ));
              DO_separateTagIds(4);
              setCursor(current_cursor);
           }
        });
        tag4Menu.add(separateTagIdsItem4);
        JMenuItem editTagIdsItem4 = new JMenuItem ("Edit Tag Id", 'e');
        editTagIdsItem4.addActionListener(new ActionListener() {
           public void actionPerformed(ActionEvent e) {
              Cursor current_cursor = getCursor();
              setCursor(new Cursor ( Cursor.WAIT_CURSOR ));
              DO_editTagIds(4);
              setCursor(current_cursor);
           }
        });
        tag4Menu.add(editTagIdsItem4);
        JMenuItem copyTagItem4 = new JMenuItem ("Copy Tag & Id", 'c');
        copyTagItem4.addActionListener(new ActionListener() {
           public void actionPerformed(ActionEvent e) {
              Cursor current_cursor = getCursor();
              setCursor(new Cursor ( Cursor.WAIT_CURSOR ));
              DO_copyTag(4);
              setCursor(current_cursor);
           }
        });
        tag4Menu.add(copyTagItem4);
        JMenuItem pastTagItem4 = new JMenuItem ("Past Tag & Id", 'p');
        pastTagItem4.addActionListener(new ActionListener() {
           public void actionPerformed(ActionEvent e) {
              Cursor current_cursor = getCursor();
              setCursor(new Cursor ( Cursor.WAIT_CURSOR ));
              DO_pastTag(4);
              setCursor(current_cursor);
           }
        });
        tag4Menu.add(pastTagItem4);
        newTag4MenuItem = new JMenuItem("Add Tag",'a');
        newTag4MenuItem.addActionListener(new ActionListener() {
           public void actionPerformed(ActionEvent e) {
              Cursor current_cursor = getCursor();
              setCursor(new Cursor ( Cursor.WAIT_CURSOR ));
              DO_makeNewTag4();
              setCursor(current_cursor);
           }
        });
        tag4Menu.add(newTag4MenuItem);
        if (!tableSettings.hideTag4) {
            menuButtons.add(tag4Menu);
        }
        tag5Menu = new JMenu("Tag level 5");
        tag5Menu.setMnemonic('5');
        tag5TokenMenu = new JMenu("Tag tokens");
        tag5Menu.add(tag5TokenMenu);
        tag5LemmaMenu = new JMenu("Tag types");
        tag5LemmaMenu.setMnemonic('y');
        tag5Menu.add(tag5LemmaMenu);
        tag5ConstituentMenu = new JMenu("Tag constituent");
        tag5ConstituentMenu.setMnemonic('c');
        tag5Menu.add(tag5ConstituentMenu);
        tag5SentenceMenu = new JMenu("Tag sentence");
        tag5SentenceMenu.setMnemonic('s');
        tag5Menu.add(tag5SentenceMenu);
        JMenuItem untagItem5 = new JMenuItem ("UNTAG", 'u');
        untagItem5.addActionListener(new ActionListener() {
           public void actionPerformed(ActionEvent e) {
              Cursor current_cursor = getCursor();
              setCursor(new Cursor ( Cursor.WAIT_CURSOR ));
              DO_unTagTokens(5);
              setCursor(current_cursor);
           }
        });
        tag5Menu.add(untagItem5);
        JMenuItem mergeTagIdsItem5 = new JMenuItem ("Merge Tag Ids", 'm');
        mergeTagIdsItem5.addActionListener(new ActionListener() {
           public void actionPerformed(ActionEvent e) {
              Cursor current_cursor = getCursor();
              setCursor(new Cursor ( Cursor.WAIT_CURSOR ));
              DO_mergeTagIds(5);
              setCursor(current_cursor);
           }
        });
        tag5Menu.add(mergeTagIdsItem5);
        JMenuItem separateTagIdsItem5 = new JMenuItem ("Separate Tag Ids", 's');
        separateTagIdsItem5.addActionListener(new ActionListener() {
           public void actionPerformed(ActionEvent e) {
              Cursor current_cursor = getCursor();
              setCursor(new Cursor ( Cursor.WAIT_CURSOR ));
              DO_separateTagIds(5);
              setCursor(current_cursor);
           }
        });
        tag5Menu.add(separateTagIdsItem5);
        JMenuItem editTagIdsItem5 = new JMenuItem ("Edit Tag Id", 'e');
        editTagIdsItem5.addActionListener(new ActionListener() {
           public void actionPerformed(ActionEvent e) {
              Cursor current_cursor = getCursor();
              setCursor(new Cursor ( Cursor.WAIT_CURSOR ));
              DO_editTagIds(5);
              setCursor(current_cursor);
           }
        });
        tag5Menu.add(editTagIdsItem5);
        JMenuItem copyTagItem5 = new JMenuItem ("Copy Tag & Id", 'c');
        copyTagItem5.addActionListener(new ActionListener() {
           public void actionPerformed(ActionEvent e) {
              Cursor current_cursor = getCursor();
              setCursor(new Cursor ( Cursor.WAIT_CURSOR ));
              DO_copyTag(5);
              setCursor(current_cursor);
           }
        });
        tag5Menu.add(copyTagItem5);
        JMenuItem pastTagItem5 = new JMenuItem ("Past Tag & Id", 'p');
        pastTagItem5.addActionListener(new ActionListener() {
           public void actionPerformed(ActionEvent e) {
              Cursor current_cursor = getCursor();
              setCursor(new Cursor ( Cursor.WAIT_CURSOR ));
              DO_pastTag(5);
              setCursor(current_cursor);
           }
        });
        tag5Menu.add(pastTagItem5);
        newTag5MenuItem = new JMenuItem("Add Tag",'a');
        newTag5MenuItem.addActionListener(new ActionListener() {
           public void actionPerformed(ActionEvent e) {
              Cursor current_cursor = getCursor();
              setCursor(new Cursor ( Cursor.WAIT_CURSOR ));
              DO_makeNewTag5();
              setCursor(current_cursor);
           }
        });
        tag5Menu.add(newTag5MenuItem);
        if (!tableSettings.hideTag5) {
            menuButtons.add(tag5Menu);
        }
        tag6Menu = new JMenu("Tag level 6");
        tag6Menu.setMnemonic('6');
        tag6TokenMenu = new JMenu("Tag tokens");
        tag6Menu.add(tag6TokenMenu);
        tag6LemmaMenu = new JMenu("Tag types");
        tag6LemmaMenu.setMnemonic('y');
        tag6Menu.add(tag6LemmaMenu);
        tag6ConstituentMenu = new JMenu("Tag constituent");
        tag6ConstituentMenu.setMnemonic('c');
        tag6Menu.add(tag6ConstituentMenu);
        tag6SentenceMenu = new JMenu("Tag sentence");
        tag6SentenceMenu.setMnemonic('s');
        tag6Menu.add(tag6SentenceMenu);
        JMenuItem untagItem6 = new JMenuItem ("UNTAG", 'u');
        untagItem6.addActionListener(new ActionListener() {
           public void actionPerformed(ActionEvent e) {
              Cursor current_cursor = getCursor();
              setCursor(new Cursor ( Cursor.WAIT_CURSOR ));
              DO_unTagTokens(6);
              setCursor(current_cursor);
           }
        });
        tag6Menu.add(untagItem6);
        JMenuItem mergeTagIdsItem6 = new JMenuItem ("Merge Tag Ids", 'm');
        mergeTagIdsItem6.addActionListener(new ActionListener() {
           public void actionPerformed(ActionEvent e) {
              Cursor current_cursor = getCursor();
              setCursor(new Cursor ( Cursor.WAIT_CURSOR ));
              DO_mergeTagIds(6);
              setCursor(current_cursor);
           }
        });
        tag6Menu.add(mergeTagIdsItem6);
        JMenuItem separateTagIdsItem6 = new JMenuItem ("Separate Tag Ids", 's');
        separateTagIdsItem6.addActionListener(new ActionListener() {
           public void actionPerformed(ActionEvent e) {
              Cursor current_cursor = getCursor();
              setCursor(new Cursor ( Cursor.WAIT_CURSOR ));
              DO_separateTagIds(6);
              setCursor(current_cursor);
           }
        });
        tag6Menu.add(separateTagIdsItem6);
        JMenuItem editTagIdsItem6 = new JMenuItem ("Edit Tag Id", 'e');
        editTagIdsItem6.addActionListener(new ActionListener() {
           public void actionPerformed(ActionEvent e) {
              Cursor current_cursor = getCursor();
              setCursor(new Cursor ( Cursor.WAIT_CURSOR ));
              DO_editTagIds(6);
              setCursor(current_cursor);
           }
        });
        tag6Menu.add(editTagIdsItem6);
        JMenuItem copyTagItem6 = new JMenuItem ("Copy Tag & Id", 'c');
        copyTagItem6.addActionListener(new ActionListener() {
           public void actionPerformed(ActionEvent e) {
              Cursor current_cursor = getCursor();
              setCursor(new Cursor ( Cursor.WAIT_CURSOR ));
              DO_copyTag(6);
              setCursor(current_cursor);
           }
        });
        tag6Menu.add(copyTagItem6);
        JMenuItem pastTagItem6 = new JMenuItem ("Past Tag & Id", 'p');
        pastTagItem6.addActionListener(new ActionListener() {
           public void actionPerformed(ActionEvent e) {
              Cursor current_cursor = getCursor();
              setCursor(new Cursor ( Cursor.WAIT_CURSOR ));
              DO_pastTag(6);
              setCursor(current_cursor);
           }
        });
        tag6Menu.add(pastTagItem6);
        newTag6MenuItem = new JMenuItem("Add Tag",'a');
        newTag6MenuItem.addActionListener(new ActionListener() {
           public void actionPerformed(ActionEvent e) {
              Cursor current_cursor = getCursor();
              setCursor(new Cursor ( Cursor.WAIT_CURSOR ));
              DO_makeNewTag6();
              setCursor(current_cursor);
           }
        });
        tag6Menu.add(newTag6MenuItem);
        if (!tableSettings.hideTag6) {
            menuButtons.add(tag6Menu);
        }
        tag7Menu = new JMenu("Tag level 7");
        tag7Menu.setMnemonic('7');
        tag7TokenMenu = new JMenu("Tag tokens");
        tag7Menu.add(tag7TokenMenu);
        tag7LemmaMenu = new JMenu("Tag types");
        tag7LemmaMenu.setMnemonic('y');
        tag7Menu.add(tag7LemmaMenu);
        tag7ConstituentMenu = new JMenu("Tag constituent");
        tag7ConstituentMenu.setMnemonic('c');
        tag7Menu.add(tag7ConstituentMenu);
        tag7SentenceMenu = new JMenu("Tag sentence");
        tag7SentenceMenu.setMnemonic('s');
        tag7Menu.add(tag7SentenceMenu);
        JMenuItem untagItem7 = new JMenuItem ("UNTAG", 'u');
        untagItem6.addActionListener(new ActionListener() {
           public void actionPerformed(ActionEvent e) {
              Cursor current_cursor = getCursor();
              setCursor(new Cursor ( Cursor.WAIT_CURSOR ));
              DO_unTagTokens(7);
              setCursor(current_cursor);
           }
        });
        tag7Menu.add(untagItem7);
        JMenuItem mergeTagIdsItem7 = new JMenuItem ("Merge Tag Ids", 'm');
        mergeTagIdsItem6.addActionListener(new ActionListener() {
           public void actionPerformed(ActionEvent e) {
              Cursor current_cursor = getCursor();
              setCursor(new Cursor ( Cursor.WAIT_CURSOR ));
              DO_mergeTagIds(7);
              setCursor(current_cursor);
           }
        });
        tag7Menu.add(mergeTagIdsItem7);
        JMenuItem separateTagIdsItem7 = new JMenuItem ("Separate Tag Ids", 's');
        separateTagIdsItem6.addActionListener(new ActionListener() {
           public void actionPerformed(ActionEvent e) {
              Cursor current_cursor = getCursor();
              setCursor(new Cursor ( Cursor.WAIT_CURSOR ));
              DO_separateTagIds(7);
              setCursor(current_cursor);
           }
        });
        tag7Menu.add(separateTagIdsItem7);
        JMenuItem editTagIdsItem7 = new JMenuItem ("Edit Tag Id", 'e');
        editTagIdsItem7.addActionListener(new ActionListener() {
           public void actionPerformed(ActionEvent e) {
              Cursor current_cursor = getCursor();
              setCursor(new Cursor ( Cursor.WAIT_CURSOR ));
              DO_editTagIds(7);
              setCursor(current_cursor);
           }
        });
        tag7Menu.add(editTagIdsItem7);
        JMenuItem copyTagItem7 = new JMenuItem ("Copy Tag & Id", 'c');
        copyTagItem7.addActionListener(new ActionListener() {
           public void actionPerformed(ActionEvent e) {
              Cursor current_cursor = getCursor();
              setCursor(new Cursor ( Cursor.WAIT_CURSOR ));
              DO_copyTag(7);
              setCursor(current_cursor);
           }
        });
        tag7Menu.add(copyTagItem7);
        JMenuItem pastTagItem7 = new JMenuItem ("Past Tag & Id", 'p');
        pastTagItem7.addActionListener(new ActionListener() {
           public void actionPerformed(ActionEvent e) {
              Cursor current_cursor = getCursor();
              setCursor(new Cursor ( Cursor.WAIT_CURSOR ));
              DO_pastTag(7);
              setCursor(current_cursor);
           }
        });
        tag7Menu.add(pastTagItem7);
        newTag7MenuItem = new JMenuItem("Add Tag",'a');
        newTag7MenuItem.addActionListener(new ActionListener() {
           public void actionPerformed(ActionEvent e) {
              Cursor current_cursor = getCursor();
              setCursor(new Cursor ( Cursor.WAIT_CURSOR ));
              DO_makeNewTag7();
              setCursor(current_cursor);
           }
        });
        tag7Menu.add(newTag7MenuItem);
        if (!tableSettings.hideTag7) {
            menuButtons.add(tag7Menu);
        }
        tag8Menu = new JMenu("Tag level 8");
        tag8Menu.setMnemonic('8');
        tag8TokenMenu = new JMenu("Tag tokens");
        tag8Menu.add(tag8TokenMenu);
        tag8LemmaMenu = new JMenu("Tag types");
        tag8LemmaMenu.setMnemonic('y');
        tag8Menu.add(tag8LemmaMenu);
        tag8ConstituentMenu = new JMenu("Tag constituent");
        tag8ConstituentMenu.setMnemonic('c');
        tag8Menu.add(tag8ConstituentMenu);
        tag8SentenceMenu = new JMenu("Tag sentence");
        tag8SentenceMenu.setMnemonic('s');
        tag8Menu.add(tag8SentenceMenu);
        JMenuItem untagItem8 = new JMenuItem ("UNTAG", 'u');
        untagItem8.addActionListener(new ActionListener() {
           public void actionPerformed(ActionEvent e) {
              Cursor current_cursor = getCursor();
              setCursor(new Cursor ( Cursor.WAIT_CURSOR ));
              DO_unTagTokens(8);
              setCursor(current_cursor);
           }
        });
        tag8Menu.add(untagItem8);
        JMenuItem mergeTagIdsItem8 = new JMenuItem ("Merge Tag Ids", 'm');
        mergeTagIdsItem8.addActionListener(new ActionListener() {
           public void actionPerformed(ActionEvent e) {
              Cursor current_cursor = getCursor();
              setCursor(new Cursor ( Cursor.WAIT_CURSOR ));
              DO_mergeTagIds(8);
              setCursor(current_cursor);
           }
        });
        tag8Menu.add(mergeTagIdsItem8);
        JMenuItem separateTagIdsItem8 = new JMenuItem ("Separate Tag Ids", 's');
        separateTagIdsItem8.addActionListener(new ActionListener() {
           public void actionPerformed(ActionEvent e) {
              Cursor current_cursor = getCursor();
              setCursor(new Cursor ( Cursor.WAIT_CURSOR ));
              DO_separateTagIds(8);
              setCursor(current_cursor);
           }
        });
        tag8Menu.add(separateTagIdsItem8);
        JMenuItem editTagIdsItem8 = new JMenuItem ("Edit Tag Id", 'e');
        editTagIdsItem8.addActionListener(new ActionListener() {
           public void actionPerformed(ActionEvent e) {
              Cursor current_cursor = getCursor();
              setCursor(new Cursor ( Cursor.WAIT_CURSOR ));
              DO_editTagIds(8);
              setCursor(current_cursor);
           }
        });
        tag8Menu.add(editTagIdsItem8);
        JMenuItem copyTagItem8 = new JMenuItem ("Copy Tag & Id", 'c');
        copyTagItem8.addActionListener(new ActionListener() {
           public void actionPerformed(ActionEvent e) {
              Cursor current_cursor = getCursor();
              setCursor(new Cursor ( Cursor.WAIT_CURSOR ));
              DO_copyTag(8);
              setCursor(current_cursor);
           }
        });
        tag8Menu.add(copyTagItem8);
        JMenuItem pastTagItem8 = new JMenuItem ("Past Tag & Id", 'p');
        pastTagItem8.addActionListener(new ActionListener() {
           public void actionPerformed(ActionEvent e) {
              Cursor current_cursor = getCursor();
              setCursor(new Cursor ( Cursor.WAIT_CURSOR ));
              DO_pastTag(8);
              setCursor(current_cursor);
           }
        });
        tag8Menu.add(pastTagItem8);
        newTag8MenuItem = new JMenuItem("Add Tag",'a');
        newTag8MenuItem.addActionListener(new ActionListener() {
           public void actionPerformed(ActionEvent e) {
              Cursor current_cursor = getCursor();
              setCursor(new Cursor ( Cursor.WAIT_CURSOR ));
              DO_makeNewTag8();
              setCursor(current_cursor);
           }
        });
        tag8Menu.add(newTag8MenuItem);
        if (!tableSettings.hideTag8) {
            menuButtons.add(tag8Menu);
        }
        table = new AnnotationTable(tableSettings);
        contentPanel = new JPanel();
        setContentPane(contentPanel);
        contentPanel.setLayout(new GridBagLayout());
        contentPanel.add(menuButtons, new GridBagConstraints(0, 0, 1, 1, 0, 0
                ,GridBagConstraints.WEST, GridBagConstraints.HORIZONTAL, new Insets(10, 10, 10, 10), 15, 15));
        contentPanel.add(table, new GridBagConstraints(0, 1, 1, 1, 0.3, 0.3
                            ,GridBagConstraints.CENTER, GridBagConstraints.BOTH, new Insets(10, 10, 10, 10), 0, 0));
        contentPanel.add(messagePanel, new GridBagConstraints(0, 3, 1, 1, 0.3, 0.3
                            ,GridBagConstraints.SOUTH, GridBagConstraints.HORIZONTAL, new Insets(10, 10, 10, 10), 0, 0));
    }

    public AnnotatorFrame (TableSettings settings) {
        File resource = new File (RESOURCESFOLDER);
        if (!resource.exists()) {
            resource.mkdir();
        }
        File locations = new File (LOCATIONFILE);
        if (!locations.exists()) {
            try {
                locations.createNewFile();
            } catch (IOException e) {
                e.printStackTrace();  
            }
        }
        tableSettings = settings;
        cache = new ArrayList<CacheData>();
        cacheBu = new ArrayList<CacheData>();
        parser = new KafSaxParser();
        tagLexicon = new Lexicon();
        tagLexicon.parseFile(LEXICONFILE);
        TripleConfig = new TripleConfig(TripleCONFIGFILE);
        theTag1Set = new ArrayList<String>();
        theTag2Set = new ArrayList<String>();
        theTag3Set = new ArrayList<String>();
        theTag4Set = new ArrayList<String>();
        theTag5Set = new ArrayList<String>();
        theTag6Set = new ArrayList<String>();
        theTag7Set = new ArrayList<String>();
        theTag8Set = new ArrayList<String>();
        clipboardTag = "";
        clipboardTagId = -1;
        inputName = "";
        messagePanel = new JPanel();
        messagePanel.setMinimumSize(new Dimension(400, 320));
        messagePanel.setPreferredSize(new Dimension(400, 320));
        messagePanel.setMaximumSize(new Dimension(400, 320));
        messageLabel = new JLabel("Messages:");
        messageLabel.setMinimumSize(new Dimension(80, 25));
        messageLabel.setPreferredSize(new Dimension(80, 25));
        messageField = new JTextField();
        messageField.setEditable(false);
        messageField.setMinimumSize(new Dimension(300, 25));
        messageField.setPreferredSize(new Dimension(300, 25));
        messageField.setMaximumSize(new Dimension(400, 30));
        fullTextLabel = new JLabel("Text:");
        fullTextLabel.setMinimumSize(new Dimension(80, 25));
        fullTextLabel.setPreferredSize(new Dimension(80, 25));
        fullTextField = new JTextArea();
        fullTextField.setEditable(false);
        fullTextField.setBackground(Colors.BackGroundColor);
        fullTextField.setLineWrap(true);
        fullTextField.setWrapStyleWord(true);
        fullTextField.addMouseListener(new MouseAdapter() {
            public void mousePressed(MouseEvent e) {
                switch(e.getModifiers()) {
                    case InputEvent.BUTTON3_MASK: {
                        String word = fullTextField.getSelectedText();
                        table.searchForString(AnnotationTableModel.ROWWORDTOKEN, word);
                    }
                }
            }
        });
        JScrollPane scrollableTextArea = new JScrollPane (fullTextField,
                JScrollPane.VERTICAL_SCROLLBAR_ALWAYS, JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS);
        scrollableTextArea.setMinimumSize(new Dimension(300, 200));
        scrollableTextArea.setPreferredSize(new Dimension(300, 200));
        scrollableTextArea.setMaximumSize(new Dimension(400, 200));
        kafFileLabel = new JLabel("KAF file:");
        kafFileLabel.setMinimumSize(new Dimension(80, 25));
        kafFileLabel.setPreferredSize(new Dimension(80, 25));
        kafFileField = new JTextField();
        kafFileField.setEditable(false);
        kafFileField.setBackground(Colors.BackGroundColor);
        kafFileField.setMinimumSize(new Dimension(300, 25));
        kafFileField.setPreferredSize(new Dimension(300, 25));
        kafFileField.setMaximumSize(new Dimension(400, 30));
        tagFileLabel = new JLabel("TAG file:");
        tagFileLabel.setMinimumSize(new Dimension(80, 25));
        tagFileLabel.setPreferredSize(new Dimension(80, 25));
        tagFileField = new JTextField();
        tagFileField.setEditable(false);
        tagFileField.setBackground(Colors.BackGroundColor);
        tagFileField.setMinimumSize(new Dimension(300, 25));
        tagFileField.setPreferredSize(new Dimension(300, 25));
        tagFileField.setMaximumSize(new Dimension(400, 30));
        tagSetFileLabel = new JLabel("TAG set:");
        tagSetFileLabel.setMinimumSize(new Dimension(80, 25));
        tagSetFileLabel.setPreferredSize(new Dimension(80, 25));
        tagSetFileField = new JTextField();
        tagSetFileField.setEditable(false);
        tagSetFileField.setBackground(Colors.BackGroundColor);
        tagSetFileField.setMinimumSize(new Dimension(300, 25));
        tagSetFileField.setPreferredSize(new Dimension(300, 25));
        tagSetFileField.setMaximumSize(new Dimension(400, 30));
        messagePanel.setLayout(new GridBagLayout());
        messagePanel.add(fullTextLabel, new GridBagConstraints(0, 0, 1, 1, 0, 0
                ,GridBagConstraints.NORTH, GridBagConstraints.NONE, new Insets(10, 1, 1, 1), 0, 0));
        messagePanel.add(scrollableTextArea, new GridBagConstraints(1, 0, 1, 1, 0.3, 0.3
                , GridBagConstraints.NORTH, GridBagConstraints.BOTH, new Insets(10, 1, 1, 1), 0, 0));
        messagePanel.add(messageLabel, new GridBagConstraints(0, 1, 1, 1, 0, 0
                ,GridBagConstraints.NORTH, GridBagConstraints.NONE, new Insets(10, 1, 1, 1), 0, 0));
        messagePanel.add(messageField, new GridBagConstraints(1, 1, 1, 1, 0.3, 0.3
                , GridBagConstraints.NORTH, GridBagConstraints.BOTH, new Insets(10, 1, 1, 1), 0, 0));
        messagePanel.add(kafFileLabel, new GridBagConstraints(0, 2, 1, 1, 0, 0
                ,GridBagConstraints.CENTER, GridBagConstraints.NONE, new Insets(1, 1, 1, 1), 0, 0));
        messagePanel.add(kafFileField, new GridBagConstraints(1, 2, 1, 1, 0.3, 0.3
                , GridBagConstraints.CENTER, GridBagConstraints.BOTH, new Insets(1, 1, 1, 1), 0, 0));
        messagePanel.add(tagFileLabel, new GridBagConstraints(0, 3, 1, 1, 0, 0
                ,GridBagConstraints.CENTER, GridBagConstraints.NONE, new Insets(1, 1, 1, 1), 0, 0));
        messagePanel.add(tagFileField, new GridBagConstraints(1, 3, 1, 1, 0.3, 0.3
                , GridBagConstraints.CENTER, GridBagConstraints.BOTH, new Insets(1, 1, 1, 1), 0, 0));
        messagePanel.add(tagSetFileLabel, new GridBagConstraints(0, 4, 1, 1, 0, 0
                ,GridBagConstraints.CENTER, GridBagConstraints.NONE, new Insets(1, 1, 1, 1), 0, 0));
        messagePanel.add(tagSetFileField, new GridBagConstraints(1, 4, 1, 1, 0.3, 0.3
                            ,GridBagConstraints.CENTER, GridBagConstraints.BOTH, new Insets(1, 1, 1, 1), 0, 0));
        menuButtons = new JMenuBar();
        fileMenu = new JMenu("File");
        fileMenu.setMnemonic('f');
        openMenuItem = new JMenuItem("Open KAF file",'o');
        openMenuItem.addActionListener(new ActionListener() {
           public void actionPerformed(ActionEvent e) {
              Cursor current_cursor = getCursor();
              setCursor(new Cursor ( Cursor.WAIT_CURSOR ));
              DO_loadKafFile();
              setCursor(current_cursor);
           }
        });
        fileMenu.add(openMenuItem);
        readTagFileMenuItem = new JMenuItem("Load TAG file",'l');
        readTagFileMenuItem.addActionListener(new ActionListener() {
           public void actionPerformed(ActionEvent e) {
              Cursor current_cursor = getCursor();
              setCursor(new Cursor ( Cursor.WAIT_CURSOR ));
              DO_loadTagFile();
              setCursor(current_cursor);
           }
        });
        fileMenu.add(readTagFileMenuItem);
        readTagSetMenuItem = new JMenuItem("Load TAG set", 't');
        readTagSetMenuItem.setMnemonic('t');
        readTagSetMenuItem.addActionListener(new ActionListener() {
           public void actionPerformed(ActionEvent e) {
              Cursor current_cursor = getCursor();
              setCursor(new Cursor ( Cursor.WAIT_CURSOR ));
              DO_readTagSet();
              setCursor(current_cursor);
           }
        });
        fileMenu.add(readTagSetMenuItem);
        readLexiconMenuItem = new JMenuItem("Load lexicon file", 'x');                
        readLexiconMenuItem.addActionListener(new ActionListener() {
           public void actionPerformed(ActionEvent e) {
              Cursor current_cursor = getCursor();
              setCursor(new Cursor ( Cursor.WAIT_CURSOR ));
              DO_readLexicon();
              setCursor(current_cursor);
           }
        });
        fileMenu.add(readLexiconMenuItem);
        saveTagMenuItem = new JMenuItem("Save tagging",'s');
        saveTagMenuItem.addActionListener(new ActionListener() {
           public void actionPerformed(ActionEvent e) {
              Cursor current_cursor = getCursor();
              setCursor(new Cursor ( Cursor.WAIT_CURSOR ));
              int ok = -1;
              ok = DO_saveTagFile();
              DO_saveLexiconFile();
              if (ok==0) {
                  messageField.setText("Tagging data saved");
              }
              else {
                  messageField.setText("Warning! Tagging data NOT saved");
              }
              setCursor(current_cursor);
           }
        });
        fileMenu.add(saveTagMenuItem);
        saveAsMenu = new JMenu("Save as");
        saveAsMenu.setMnemonic('a');
        saveTagAsMenuItem = new JMenuItem("Tagging",'t');
        saveTagAsMenuItem.addActionListener(new ActionListener() {
           public void actionPerformed(ActionEvent e) {
              Cursor current_cursor = getCursor();
              setCursor(new Cursor ( Cursor.WAIT_CURSOR ));
              DO_saveTagFileAs();
              setCursor(current_cursor);
           }
        });
        saveAsMenu.add(saveTagAsMenuItem);
        saveLexiconAsMenuItem = new JMenuItem("Lexicon",'l');
        saveLexiconAsMenuItem.addActionListener(new ActionListener() {
           public void actionPerformed(ActionEvent e) {
              Cursor current_cursor = getCursor();
              setCursor(new Cursor ( Cursor.WAIT_CURSOR ));
              DO_saveLexiconFileAs();
              setCursor(current_cursor);
           }
        });
        saveAsMenu.add(saveLexiconAsMenuItem);
        fileMenu.add(saveAsMenu);
        saveTrainMenuItem = new JMenuItem("Export tags to train format",'e');
        saveTrainMenuItem.addActionListener(new ActionListener() {
           public void actionPerformed(ActionEvent e) {
              Cursor current_cursor = getCursor();
              setCursor(new Cursor ( Cursor.WAIT_CURSOR ));
              DO_saveTrainFile();
              setCursor(current_cursor);
           }
        });
        fileMenu.add(saveTrainMenuItem);
        convertTagsToTriples = new JMenuItem("Export to Triples",'e');
        convertTagsToTriples.addActionListener(new ActionListener() {
           public void actionPerformed(ActionEvent e) {
              Cursor current_cursor = getCursor();
              setCursor(new Cursor ( Cursor.WAIT_CURSOR ));
              DO_exportToTriples();
              setCursor(current_cursor);
           }
        });
        fileMenu.add(convertTagsToTriples);
        outputMostCommonSubsumer = new JMenuItem("Export wordnet classes",'w');
        outputMostCommonSubsumer.addActionListener(new ActionListener() {
           public void actionPerformed(ActionEvent e) {
              Cursor current_cursor = getCursor();
              setCursor(new Cursor ( Cursor.WAIT_CURSOR ));
              DO_exportMostCommonSubsumers();
              setCursor(current_cursor);
           }
        });
        fileMenu.add(outputMostCommonSubsumer);
        quitMenuItem = new JMenuItem("Quit",'q');
        quitMenuItem.addActionListener(new ActionListener() {
           public void actionPerformed(ActionEvent e) {
               if (DO_checkSave()==2) {
                    System.exit(0);
               }
           }
        });
        fileMenu.add(quitMenuItem);
        menuButtons.add(fileMenu);
        searchMenu = new JMenu("Search");
        searchMenu.setMnemonic('s');
        searchWordMenuItem = new JMenuItem("Word",'w');
        searchWordMenuItem.addActionListener(new ActionListener() {
           public void actionPerformed(ActionEvent e) {
              Cursor current_cursor = getCursor();
              setCursor(new Cursor ( Cursor.WAIT_CURSOR ));
              DO_searchWord();
              setCursor(current_cursor);
           }
        });
        searchMenu.add(searchWordMenuItem);
        searchLastTagMenuItem = new JMenuItem("Last tag",'l');
        searchLastTagMenuItem.addActionListener(new ActionListener() {
           public void actionPerformed(ActionEvent e) {
              Cursor current_cursor = getCursor();
              setCursor(new Cursor ( Cursor.WAIT_CURSOR ));
              DO_searchLastTag();
              setCursor(current_cursor);
           }
        });
        searchMenu.add(searchLastTagMenuItem);
        searchTagMenuItem = new JMenuItem("Tag",'t');
        searchTagMenuItem.addActionListener(new ActionListener() {
           public void actionPerformed(ActionEvent e) {
              Cursor current_cursor = getCursor();
              setCursor(new Cursor ( Cursor.WAIT_CURSOR ));
              DO_searchTag();
              setCursor(current_cursor);
           }
        });
        searchMenu.add(searchTagMenuItem);
        searchWordAgainMenuItem = new JMenuItem("Next Word",'n');
        searchWordAgainMenuItem.addActionListener(new ActionListener() {
           public void actionPerformed(ActionEvent e) {
              Cursor current_cursor = getCursor();
              setCursor(new Cursor ( Cursor.WAIT_CURSOR ));
              DO_searchWordAgain();
              setCursor(current_cursor);
           }
        });
        searchMenu.add(searchWordAgainMenuItem);
        searchTagAgainMenuItem = new JMenuItem("Next Tag",'x');
        searchTagAgainMenuItem.addActionListener(new ActionListener() {
           public void actionPerformed(ActionEvent e) {
              Cursor current_cursor = getCursor();
              setCursor(new Cursor ( Cursor.WAIT_CURSOR ));
              DO_searchTagAgain();
              setCursor(current_cursor);
           }
        });
        searchMenu.add(searchTagAgainMenuItem);
        searchNotDoneMenuItem = new JMenuItem("No Confirm",'c');
        searchNotDoneMenuItem.addActionListener(new ActionListener() {
           public void actionPerformed(ActionEvent e) {
              Cursor current_cursor = getCursor();
              setCursor(new Cursor ( Cursor.WAIT_CURSOR ));
              DO_notDone();
              setCursor(current_cursor);
           }
        });
        searchMenu.add(searchNotDoneMenuItem);
        menuButtons.add(searchMenu);
        otherMenu = new JMenu("Other");
        otherMenu.setMnemonic('o');
        confirmMenuItem = new JMenuItem("Do Confirm",'d');
        confirmMenuItem.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e) {
                Cursor current_cursor = getCursor();
                setCursor(new Cursor(Cursor.WAIT_CURSOR));
                DO_Selected();
                setCursor(current_cursor);
            }
        });
        otherMenu.add(confirmMenuItem);
        unconfirmMenuItem = new JMenuItem("Undo Confirm",'u');
        unconfirmMenuItem.addActionListener(new ActionListener() {
           public void actionPerformed(ActionEvent e) {
              Cursor current_cursor = getCursor();
              setCursor(new Cursor ( Cursor.WAIT_CURSOR ));
              DO_Unselected();
              setCursor(current_cursor);
           }
        });
        otherMenu.add(unconfirmMenuItem);
        removeAllTagsMenuItem = new JMenuItem("Remove all annotations",'r');
        removeAllTagsMenuItem.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e) {
                Cursor current_cursor = getCursor();
                setCursor(new Cursor ( Cursor.WAIT_CURSOR ));
                DO_unTagAllTokens();
                setCursor(current_cursor);
            }
        });
        otherMenu.add(removeAllTagsMenuItem);
        undoMenuItem = new JMenuItem("Undo",'u');
        undoMenuItem.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e) {
                Cursor current_cursor = getCursor();
                setCursor(new Cursor ( Cursor.WAIT_CURSOR ));
                DO_undo();
                setCursor(current_cursor);
            }
        });
        otherMenu.add(undoMenuItem);
        menuButtons.add(otherMenu);
        tag1Menu = new JMenu("Tag level 1");
        tag1Menu.setMnemonic('1');
        tag1TokenMenu = new JMenu("Tag tokens");
        tag1TokenMenu.setMnemonic('t');
        tag1Menu.add(tag1TokenMenu);
        tag1LemmaMenu = new JMenu("Tag types");
        tag1LemmaMenu.setMnemonic('y');
        tag1Menu.add(tag1LemmaMenu);
        tag1ConstituentMenu = new JMenu("Tag constituent");
        tag1ConstituentMenu.setMnemonic('c');
        tag1Menu.add(tag1ConstituentMenu);
        tag1SentenceMenu = new JMenu("Tag sentence");
        tag1SentenceMenu.setMnemonic('s');
        tag1Menu.add(tag1SentenceMenu);
        JMenuItem untagItem = new JMenuItem ("UNTAG", 'u');
        untagItem.addActionListener(new ActionListener() {
           public void actionPerformed(ActionEvent e) {
              Cursor current_cursor = getCursor();
              setCursor(new Cursor ( Cursor.WAIT_CURSOR ));
              DO_unTagTokens(1);
              setCursor(current_cursor);
           }
        });
        tag1Menu.add(untagItem);
        JMenuItem mergeTagIdsItem = new JMenuItem ("Merge Tag Ids", 'm');
        mergeTagIdsItem.addActionListener(new ActionListener() {
           public void actionPerformed(ActionEvent e) {
              Cursor current_cursor = getCursor();
              setCursor(new Cursor ( Cursor.WAIT_CURSOR ));
              DO_mergeTagIds(1);
              setCursor(current_cursor);
           }
        });
        tag1Menu.add(mergeTagIdsItem);
        JMenuItem separateTagIdsItem = new JMenuItem ("Separate Tag Ids", 's');
        separateTagIdsItem.addActionListener(new ActionListener() {
           public void actionPerformed(ActionEvent e) {
              Cursor current_cursor = getCursor();
              setCursor(new Cursor ( Cursor.WAIT_CURSOR ));
              DO_separateTagIds(1);
              setCursor(current_cursor);
           }
        });
        tag1Menu.add(separateTagIdsItem);
        JMenuItem editTagIdsItem = new JMenuItem ("Edit Tag Id", 'e');
        editTagIdsItem.addActionListener(new ActionListener() {
           public void actionPerformed(ActionEvent e) {
              Cursor current_cursor = getCursor();
              setCursor(new Cursor ( Cursor.WAIT_CURSOR ));
              DO_editTagIds(1);
              setCursor(current_cursor);
           }
        });
        tag1Menu.add(editTagIdsItem);
        JMenuItem copyTagItem = new JMenuItem ("Copy Tag & Id", 'c');
        copyTagItem.addActionListener(new ActionListener() {
           public void actionPerformed(ActionEvent e) {
              Cursor current_cursor = getCursor();
              setCursor(new Cursor ( Cursor.WAIT_CURSOR ));
              DO_copyTag(1);
              setCursor(current_cursor);
           }
        });
        tag1Menu.add(copyTagItem);
        JMenuItem pastTagItem = new JMenuItem ("Past Tag & Id", 'p');
        pastTagItem.addActionListener(new ActionListener() {
           public void actionPerformed(ActionEvent e) {
              Cursor current_cursor = getCursor();
              setCursor(new Cursor ( Cursor.WAIT_CURSOR ));
              DO_pastTag(1);
              setCursor(current_cursor);
           }
        });
        tag1Menu.add(pastTagItem);
        JMenuItem selectLexTagMenuItem = new JMenuItem("Dominant Tag",'l');
        selectLexTagMenuItem.addActionListener(new ActionListener() {
                public void actionPerformed(ActionEvent e) {
                   Cursor current_cursor = getCursor();
                   setCursor(new Cursor ( Cursor.WAIT_CURSOR ));
                   DO_selectLexicalTag();
                   setCursor(current_cursor);
                }
        });
        tag1Menu.add(selectLexTagMenuItem);
        newTag1MenuItem = new JMenuItem("Add Tag",'a');
        newTag1MenuItem.addActionListener(new ActionListener() {
           public void actionPerformed(ActionEvent e) {
              Cursor current_cursor = getCursor();
              setCursor(new Cursor ( Cursor.WAIT_CURSOR ));
              DO_makeNewTag1();
              setCursor(current_cursor);
           }
        });
        tag1Menu.add(newTag1MenuItem);
        menuButtons.add(tag1Menu);
        tag2Menu = new JMenu("Tag level 2");
        tag2Menu.setMnemonic('2');
        tag2TokenMenu = new JMenu("Tag tokens");
        tag2TokenMenu.setMnemonic('t');
        tag2Menu.add(tag2TokenMenu);
        tag2LemmaMenu = new JMenu("Tag types");
        tag2LemmaMenu.setMnemonic('y');
        tag2Menu.add(tag2LemmaMenu);
        tag2ConstituentMenu = new JMenu("Tag constituent");
        tag2ConstituentMenu.setMnemonic('c');
        tag2Menu.add(tag2ConstituentMenu);
        tag2SentenceMenu = new JMenu("Tag sentence");
        tag2SentenceMenu.setMnemonic('s');
        tag2Menu.add(tag2SentenceMenu);
        JMenuItem untagItem2 = new JMenuItem ("UNTAG", 'u');
        untagItem2.addActionListener(new ActionListener() {
           public void actionPerformed(ActionEvent e) {
              Cursor current_cursor = getCursor();
              setCursor(new Cursor ( Cursor.WAIT_CURSOR ));
              DO_unTagTokens(2);
              setCursor(current_cursor);
           }
        });
        tag2Menu.add(untagItem2);
        JMenuItem mergeTagIdsItem2 = new JMenuItem ("Merge Tag Ids", 'm');
        mergeTagIdsItem2.addActionListener(new ActionListener() {
           public void actionPerformed(ActionEvent e) {
              Cursor current_cursor = getCursor();
              setCursor(new Cursor ( Cursor.WAIT_CURSOR ));
              DO_mergeTagIds(2);
              setCursor(current_cursor);
           }
        });
        tag2Menu.add(mergeTagIdsItem2);
        JMenuItem separateTagIdsItem2 = new JMenuItem ("Separate Tag Ids", 's');
        separateTagIdsItem2.addActionListener(new ActionListener() {
           public void actionPerformed(ActionEvent e) {
              Cursor current_cursor = getCursor();
              setCursor(new Cursor ( Cursor.WAIT_CURSOR ));
              DO_separateTagIds(2);
              setCursor(current_cursor);
           }
        });
        tag2Menu.add(separateTagIdsItem2);
        JMenuItem editTagIdsItem2 = new JMenuItem ("Edit Tag Id", 'e');
        editTagIdsItem2.addActionListener(new ActionListener() {
           public void actionPerformed(ActionEvent e) {
              Cursor current_cursor = getCursor();
              setCursor(new Cursor ( Cursor.WAIT_CURSOR ));
              DO_editTagIds(2);
              setCursor(current_cursor);
           }
        });
        tag2Menu.add(editTagIdsItem2);
        JMenuItem copyTagItem2 = new JMenuItem ("Copy Tag & Id", 'c');
        copyTagItem2.addActionListener(new ActionListener() {
           public void actionPerformed(ActionEvent e) {
              Cursor current_cursor = getCursor();
              setCursor(new Cursor ( Cursor.WAIT_CURSOR ));
              DO_copyTag(2);
              setCursor(current_cursor);
           }
        });
        tag2Menu.add(copyTagItem2);
        JMenuItem pastTagItem2 = new JMenuItem ("Past Tag & Id", 'p');
        pastTagItem2.addActionListener(new ActionListener() {
           public void actionPerformed(ActionEvent e) {
              Cursor current_cursor = getCursor();
              setCursor(new Cursor ( Cursor.WAIT_CURSOR ));
              DO_pastTag(2);
              setCursor(current_cursor);
           }
        });
        tag2Menu.add(pastTagItem2);
        newTag2MenuItem = new JMenuItem("Add Tag",'a');
        newTag2MenuItem.addActionListener(new ActionListener() {
           public void actionPerformed(ActionEvent e) {
              Cursor current_cursor = getCursor();
              setCursor(new Cursor ( Cursor.WAIT_CURSOR ));
              DO_makeNewTag2();
              setCursor(current_cursor);
           }
        });
        tag2Menu.add(newTag2MenuItem);
        if (!tableSettings.hideTag2) {
            menuButtons.add(tag2Menu);
        }
        tag3Menu = new JMenu("Tag level 3");
        tag3Menu.setMnemonic('3');
        tag3TokenMenu = new JMenu("Tag tokens");
        tag3Menu.add(tag3TokenMenu);
        tag3LemmaMenu = new JMenu("Tag types");
        tag3LemmaMenu.setMnemonic('y');
        tag3Menu.add(tag3LemmaMenu);
        tag3ConstituentMenu = new JMenu("Tag constituent");
        tag3ConstituentMenu.setMnemonic('c');
        tag3Menu.add(tag3ConstituentMenu);
        tag3SentenceMenu = new JMenu("Tag sentence");
        tag3SentenceMenu.setMnemonic('s');
        tag3Menu.add(tag3SentenceMenu);
        JMenuItem untagItem3 = new JMenuItem ("UNTAG", 'u');
        untagItem3.addActionListener(new ActionListener() {
           public void actionPerformed(ActionEvent e) {
              Cursor current_cursor = getCursor();
              setCursor(new Cursor ( Cursor.WAIT_CURSOR ));
              DO_unTagTokens(3);
              setCursor(current_cursor);
           }
        });
        tag3Menu.add(untagItem3);
        JMenuItem mergeTagIdsItem3 = new JMenuItem ("Merge Tag Ids", 'm');
        mergeTagIdsItem3.addActionListener(new ActionListener() {
           public void actionPerformed(ActionEvent e) {
              Cursor current_cursor = getCursor();
              setCursor(new Cursor ( Cursor.WAIT_CURSOR ));
              DO_mergeTagIds(3);
              setCursor(current_cursor);
           }
        });
        tag3Menu.add(mergeTagIdsItem3);
        JMenuItem separateTagIdsItem3 = new JMenuItem ("Separate Tag Ids", 's');
        separateTagIdsItem3.addActionListener(new ActionListener() {
           public void actionPerformed(ActionEvent e) {
              Cursor current_cursor = getCursor();
              setCursor(new Cursor ( Cursor.WAIT_CURSOR ));
              DO_separateTagIds(3);
              setCursor(current_cursor);
           }
        });
        tag3Menu.add(separateTagIdsItem3);
        JMenuItem editTagIdsItem3 = new JMenuItem ("Edit Tag Id", 'e');
        editTagIdsItem3.addActionListener(new ActionListener() {
           public void actionPerformed(ActionEvent e) {
              Cursor current_cursor = getCursor();
              setCursor(new Cursor ( Cursor.WAIT_CURSOR ));
              DO_editTagIds(3);
              setCursor(current_cursor);
           }
        });
        tag3Menu.add(editTagIdsItem3);
        JMenuItem copyTagItem3 = new JMenuItem ("Copy Tag & Id", 'c');
        copyTagItem3.addActionListener(new ActionListener() {
           public void actionPerformed(ActionEvent e) {
              Cursor current_cursor = getCursor();
              setCursor(new Cursor ( Cursor.WAIT_CURSOR ));
              DO_copyTag(3);
              setCursor(current_cursor);
           }
        });
        tag3Menu.add(copyTagItem3);
        JMenuItem pastTagItem3 = new JMenuItem ("Past Tag & Id", 'p');
        pastTagItem3.addActionListener(new ActionListener() {
           public void actionPerformed(ActionEvent e) {
              Cursor current_cursor = getCursor();
              setCursor(new Cursor ( Cursor.WAIT_CURSOR ));
              DO_pastTag(3);
              setCursor(current_cursor);
           }
        });
        tag3Menu.add(pastTagItem3);
        newTag3MenuItem = new JMenuItem("Add Tag",'a');
        newTag3MenuItem.addActionListener(new ActionListener() {
           public void actionPerformed(ActionEvent e) {
              Cursor current_cursor = getCursor();
              setCursor(new Cursor ( Cursor.WAIT_CURSOR ));
              DO_makeNewTag3();
              setCursor(current_cursor);
           }
        });
        tag3Menu.add(newTag3MenuItem);
        if (!tableSettings.hideTag3){
            menuButtons.add(tag3Menu);
        }
        tag4Menu = new JMenu("Tag level 4");
        tag4Menu.setMnemonic('4');
        tag4TokenMenu = new JMenu("Tag tokens");
        tag4Menu.add(tag4TokenMenu);
        tag4LemmaMenu = new JMenu("Tag types");
        tag4LemmaMenu.setMnemonic('y');
        tag4Menu.add(tag4LemmaMenu);
        tag4ConstituentMenu = new JMenu("Tag constituent");
        tag4ConstituentMenu.setMnemonic('c');
        tag4Menu.add(tag4ConstituentMenu);
        tag4SentenceMenu = new JMenu("Tag sentence");
        tag4SentenceMenu.setMnemonic('s');
        tag4Menu.add(tag4SentenceMenu);
        JMenuItem untagItem4 = new JMenuItem ("UNTAG", 'u');
        untagItem4.addActionListener(new ActionListener() {
           public void actionPerformed(ActionEvent e) {
              Cursor current_cursor = getCursor();
              setCursor(new Cursor ( Cursor.WAIT_CURSOR ));
              DO_unTagTokens(4);
              setCursor(current_cursor);
           }
        });
        tag4Menu.add(untagItem4);
        JMenuItem mergeTagIdsItem4 = new JMenuItem ("Merge Tag Ids", 'm');
        mergeTagIdsItem4.addActionListener(new ActionListener() {
           public void actionPerformed(ActionEvent e) {
              Cursor current_cursor = getCursor();
              setCursor(new Cursor ( Cursor.WAIT_CURSOR ));
              DO_mergeTagIds(4);
              setCursor(current_cursor);
           }
        });
        tag4Menu.add(mergeTagIdsItem4);
        JMenuItem separateTagIdsItem4 = new JMenuItem ("Separate Tag Ids", 's');
        separateTagIdsItem4.addActionListener(new ActionListener() {
           public void actionPerformed(ActionEvent e) {
              Cursor current_cursor = getCursor();
              setCursor(new Cursor ( Cursor.WAIT_CURSOR ));
              DO_separateTagIds(4);
              setCursor(current_cursor);
           }
        });
        tag4Menu.add(separateTagIdsItem4);
        JMenuItem editTagIdsItem4 = new JMenuItem ("Edit Tag Id", 'e');
        editTagIdsItem4.addActionListener(new ActionListener() {
           public void actionPerformed(ActionEvent e) {
              Cursor current_cursor = getCursor();
              setCursor(new Cursor ( Cursor.WAIT_CURSOR ));
              DO_editTagIds(4);
              setCursor(current_cursor);
           }
        });
        tag4Menu.add(editTagIdsItem4);
        JMenuItem copyTagItem4 = new JMenuItem ("Copy Tag & Id", 'c');
        copyTagItem4.addActionListener(new ActionListener() {
           public void actionPerformed(ActionEvent e) {
              Cursor current_cursor = getCursor();
              setCursor(new Cursor ( Cursor.WAIT_CURSOR ));
              DO_copyTag(4);
              setCursor(current_cursor);
           }
        });
        tag4Menu.add(copyTagItem4);
        JMenuItem pastTagItem4 = new JMenuItem ("Past Tag & Id", 'p');
        pastTagItem4.addActionListener(new ActionListener() {
           public void actionPerformed(ActionEvent e) {
              Cursor current_cursor = getCursor();
              setCursor(new Cursor ( Cursor.WAIT_CURSOR ));
              DO_pastTag(4);
              setCursor(current_cursor);
           }
        });
        tag4Menu.add(pastTagItem4);
        newTag4MenuItem = new JMenuItem("Add Tag",'a');
        newTag4MenuItem.addActionListener(new ActionListener() {
           public void actionPerformed(ActionEvent e) {
              Cursor current_cursor = getCursor();
              setCursor(new Cursor ( Cursor.WAIT_CURSOR ));
              DO_makeNewTag4();
              setCursor(current_cursor);
           }
        });
        tag4Menu.add(newTag4MenuItem);
        if (!tableSettings.hideTag4) {
            menuButtons.add(tag4Menu);
        }
        tag5Menu = new JMenu("Tag level 5");
        tag5Menu.setMnemonic('5');
        tag5TokenMenu = new JMenu("Tag tokens");
        tag5Menu.add(tag5TokenMenu);
        tag5LemmaMenu = new JMenu("Tag types");
        tag5LemmaMenu.setMnemonic('y');
        tag5Menu.add(tag5LemmaMenu);
        tag5ConstituentMenu = new JMenu("Tag constituent");
        tag5ConstituentMenu.setMnemonic('c');
        tag5Menu.add(tag5ConstituentMenu);
        tag5SentenceMenu = new JMenu("Tag sentence");
        tag5SentenceMenu.setMnemonic('s');
        tag5Menu.add(tag5SentenceMenu);
        JMenuItem untagItem5 = new JMenuItem ("UNTAG", 'u');
        untagItem5.addActionListener(new ActionListener() {
           public void actionPerformed(ActionEvent e) {
              Cursor current_cursor = getCursor();
              setCursor(new Cursor ( Cursor.WAIT_CURSOR ));
              DO_unTagTokens(5);
              setCursor(current_cursor);
           }
        });
        tag5Menu.add(untagItem5);
        JMenuItem mergeTagIdsItem5 = new JMenuItem ("Merge Tag Ids", 'm');
        mergeTagIdsItem5.addActionListener(new ActionListener() {
           public void actionPerformed(ActionEvent e) {
              Cursor current_cursor = getCursor();
              setCursor(new Cursor ( Cursor.WAIT_CURSOR ));
              DO_mergeTagIds(5);
              setCursor(current_cursor);
           }
        });
        tag5Menu.add(mergeTagIdsItem5);
        JMenuItem separateTagIdsItem5 = new JMenuItem ("Separate Tag Ids", 's');
        separateTagIdsItem5.addActionListener(new ActionListener() {
           public void actionPerformed(ActionEvent e) {
              Cursor current_cursor = getCursor();
              setCursor(new Cursor ( Cursor.WAIT_CURSOR ));
              DO_separateTagIds(5);
              setCursor(current_cursor);
           }
        });
        tag5Menu.add(separateTagIdsItem5);
        JMenuItem editTagIdsItem5 = new JMenuItem ("Edit Tag Id", 'e');
        editTagIdsItem5.addActionListener(new ActionListener() {
           public void actionPerformed(ActionEvent e) {
              Cursor current_cursor = getCursor();
              setCursor(new Cursor ( Cursor.WAIT_CURSOR ));
              DO_editTagIds(5);
              setCursor(current_cursor);
           }
        });
        tag5Menu.add(editTagIdsItem5);
        JMenuItem copyTagItem5 = new JMenuItem ("Copy Tag & Id", 'c');
        copyTagItem5.addActionListener(new ActionListener() {
           public void actionPerformed(ActionEvent e) {
              Cursor current_cursor = getCursor();
              setCursor(new Cursor ( Cursor.WAIT_CURSOR ));
              DO_copyTag(5);
              setCursor(current_cursor);
           }
        });
        tag5Menu.add(copyTagItem5);
        JMenuItem pastTagItem5 = new JMenuItem ("Past Tag & Id", 'p');
        pastTagItem5.addActionListener(new ActionListener() {
           public void actionPerformed(ActionEvent e) {
              Cursor current_cursor = getCursor();
              setCursor(new Cursor ( Cursor.WAIT_CURSOR ));
              DO_pastTag(5);
              setCursor(current_cursor);
           }
        });
        tag5Menu.add(pastTagItem5);
        newTag5MenuItem = new JMenuItem("Add Tag",'a');
        newTag5MenuItem.addActionListener(new ActionListener() {
           public void actionPerformed(ActionEvent e) {
              Cursor current_cursor = getCursor();
              setCursor(new Cursor ( Cursor.WAIT_CURSOR ));
              DO_makeNewTag5();
              setCursor(current_cursor);
           }
        });
        tag5Menu.add(newTag5MenuItem);
        if (!tableSettings.hideTag5) {
            menuButtons.add(tag5Menu);
        }
        tag6Menu = new JMenu("Tag level 6");
        tag6Menu.setMnemonic('6');
        tag6TokenMenu = new JMenu("Tag tokens");
        tag6Menu.add(tag6TokenMenu);
        tag6LemmaMenu = new JMenu("Tag types");
        tag6LemmaMenu.setMnemonic('y');
        tag6Menu.add(tag6LemmaMenu);
        tag6ConstituentMenu = new JMenu("Tag constituent");
        tag6ConstituentMenu.setMnemonic('c');
        tag6Menu.add(tag6ConstituentMenu);
        tag6SentenceMenu = new JMenu("Tag sentence");
        tag6SentenceMenu.setMnemonic('s');
        tag6Menu.add(tag6SentenceMenu);
        JMenuItem untagItem6 = new JMenuItem ("UNTAG", 'u');
        untagItem6.addActionListener(new ActionListener() {
           public void actionPerformed(ActionEvent e) {
              Cursor current_cursor = getCursor();
              setCursor(new Cursor ( Cursor.WAIT_CURSOR ));
              DO_unTagTokens(6);
              setCursor(current_cursor);
           }
        });
        tag6Menu.add(untagItem6);
        JMenuItem mergeTagIdsItem6 = new JMenuItem ("Merge Tag Ids", 'm');
        mergeTagIdsItem6.addActionListener(new ActionListener() {
           public void actionPerformed(ActionEvent e) {
              Cursor current_cursor = getCursor();
              setCursor(new Cursor ( Cursor.WAIT_CURSOR ));
              DO_mergeTagIds(6);
              setCursor(current_cursor);
           }
        });
        tag6Menu.add(mergeTagIdsItem6);
        JMenuItem separateTagIdsItem6 = new JMenuItem ("Separate Tag Ids", 's');
        separateTagIdsItem6.addActionListener(new ActionListener() {
           public void actionPerformed(ActionEvent e) {
              Cursor current_cursor = getCursor();
              setCursor(new Cursor ( Cursor.WAIT_CURSOR ));
              DO_separateTagIds(6);
              setCursor(current_cursor);
           }
        });
        tag6Menu.add(separateTagIdsItem6);
        JMenuItem editTagIdsItem6 = new JMenuItem ("Edit Tag Id", 'e');
        editTagIdsItem6.addActionListener(new ActionListener() {
           public void actionPerformed(ActionEvent e) {
              Cursor current_cursor = getCursor();
              setCursor(new Cursor ( Cursor.WAIT_CURSOR ));
              DO_editTagIds(6);
              setCursor(current_cursor);
           }
        });
        tag6Menu.add(editTagIdsItem6);
        JMenuItem copyTagItem6 = new JMenuItem ("Copy Tag & Id", 'c');
        copyTagItem6.addActionListener(new ActionListener() {
           public void actionPerformed(ActionEvent e) {
              Cursor current_cursor = getCursor();
              setCursor(new Cursor ( Cursor.WAIT_CURSOR ));
              DO_copyTag(6);
              setCursor(current_cursor);
           }
        });
        tag6Menu.add(copyTagItem6);
        JMenuItem pastTagItem6 = new JMenuItem ("Past Tag & Id", 'p');
        pastTagItem6.addActionListener(new ActionListener() {
           public void actionPerformed(ActionEvent e) {
              Cursor current_cursor = getCursor();
              setCursor(new Cursor ( Cursor.WAIT_CURSOR ));
              DO_pastTag(6);
              setCursor(current_cursor);
           }
        });
        tag6Menu.add(pastTagItem6);
        newTag6MenuItem = new JMenuItem("Add Tag",'a');
        newTag6MenuItem.addActionListener(new ActionListener() {
           public void actionPerformed(ActionEvent e) {
              Cursor current_cursor = getCursor();
              setCursor(new Cursor ( Cursor.WAIT_CURSOR ));
              DO_makeNewTag6();
              setCursor(current_cursor);
           }
        });
        tag6Menu.add(newTag6MenuItem);
        if (!tableSettings.hideTag6) {
            menuButtons.add(tag6Menu);
        }
        tag7Menu = new JMenu("Tag level 7");
        tag7Menu.setMnemonic('7');
        tag7TokenMenu = new JMenu("Tag tokens");
        tag7Menu.add(tag7TokenMenu);
        tag7LemmaMenu = new JMenu("Tag types");
        tag7LemmaMenu.setMnemonic('y');
        tag7Menu.add(tag7LemmaMenu);
        tag7ConstituentMenu = new JMenu("Tag constituent");
        tag7ConstituentMenu.setMnemonic('c');
        tag7Menu.add(tag7ConstituentMenu);
        tag7SentenceMenu = new JMenu("Tag sentence");
        tag7SentenceMenu.setMnemonic('s');
        tag7Menu.add(tag7SentenceMenu);
        JMenuItem untagItem7 = new JMenuItem ("UNTAG", 'u');
        untagItem6.addActionListener(new ActionListener() {
           public void actionPerformed(ActionEvent e) {
              Cursor current_cursor = getCursor();
              setCursor(new Cursor ( Cursor.WAIT_CURSOR ));
              DO_unTagTokens(7);
              setCursor(current_cursor);
           }
        });
        tag7Menu.add(untagItem7);
        JMenuItem mergeTagIdsItem7 = new JMenuItem ("Merge Tag Ids", 'm');
        mergeTagIdsItem6.addActionListener(new ActionListener() {
           public void actionPerformed(ActionEvent e) {
              Cursor current_cursor = getCursor();
              setCursor(new Cursor ( Cursor.WAIT_CURSOR ));
              DO_mergeTagIds(7);
              setCursor(current_cursor);
           }
        });
        tag7Menu.add(mergeTagIdsItem7);
        JMenuItem separateTagIdsItem7 = new JMenuItem ("Separate Tag Ids", 's');
        separateTagIdsItem6.addActionListener(new ActionListener() {
           public void actionPerformed(ActionEvent e) {
              Cursor current_cursor = getCursor();
              setCursor(new Cursor ( Cursor.WAIT_CURSOR ));
              DO_separateTagIds(7);
              setCursor(current_cursor);
           }
        });
        tag7Menu.add(separateTagIdsItem7);
        JMenuItem editTagIdsItem7 = new JMenuItem ("Edit Tag Id", 'e');
        editTagIdsItem7.addActionListener(new ActionListener() {
           public void actionPerformed(ActionEvent e) {
              Cursor current_cursor = getCursor();
              setCursor(new Cursor ( Cursor.WAIT_CURSOR ));
              DO_editTagIds(7);
              setCursor(current_cursor);
           }
        });
        tag7Menu.add(editTagIdsItem7);
        JMenuItem copyTagItem7 = new JMenuItem ("Copy Tag & Id", 'c');
        copyTagItem7.addActionListener(new ActionListener() {
           public void actionPerformed(ActionEvent e) {
              Cursor current_cursor = getCursor();
              setCursor(new Cursor ( Cursor.WAIT_CURSOR ));
              DO_copyTag(7);
              setCursor(current_cursor);
           }
        });
        tag7Menu.add(copyTagItem7);
        JMenuItem pastTagItem7 = new JMenuItem ("Past Tag & Id", 'p');
        pastTagItem7.addActionListener(new ActionListener() {
           public void actionPerformed(ActionEvent e) {
              Cursor current_cursor = getCursor();
              setCursor(new Cursor ( Cursor.WAIT_CURSOR ));
              DO_pastTag(7);
              setCursor(current_cursor);
           }
        });
        tag7Menu.add(pastTagItem7);
        newTag7MenuItem = new JMenuItem("Add Tag",'a');
        newTag7MenuItem.addActionListener(new ActionListener() {
           public void actionPerformed(ActionEvent e) {
              Cursor current_cursor = getCursor();
              setCursor(new Cursor ( Cursor.WAIT_CURSOR ));
              DO_makeNewTag7();
              setCursor(current_cursor);
           }
        });
        tag7Menu.add(newTag7MenuItem);
        if (!tableSettings.hideTag7) {
            menuButtons.add(tag7Menu);
        }
        tag8Menu = new JMenu("Tag level 8");
        tag8Menu.setMnemonic('8');
        tag8TokenMenu = new JMenu("Tag tokens");
        tag8Menu.add(tag8TokenMenu);
        tag8LemmaMenu = new JMenu("Tag types");
        tag8LemmaMenu.setMnemonic('y');
        tag8Menu.add(tag8LemmaMenu);
        tag8ConstituentMenu = new JMenu("Tag constituent");
        tag8ConstituentMenu.setMnemonic('c');
        tag8Menu.add(tag8ConstituentMenu);
        tag8SentenceMenu = new JMenu("Tag sentence");
        tag8SentenceMenu.setMnemonic('s');
        tag8Menu.add(tag8SentenceMenu);
        JMenuItem untagItem8 = new JMenuItem ("UNTAG", 'u');
        untagItem8.addActionListener(new ActionListener() {
           public void actionPerformed(ActionEvent e) {
              Cursor current_cursor = getCursor();
              setCursor(new Cursor ( Cursor.WAIT_CURSOR ));
              DO_unTagTokens(8);
              setCursor(current_cursor);
           }
        });
        tag8Menu.add(untagItem8);
        JMenuItem mergeTagIdsItem8 = new JMenuItem ("Merge Tag Ids", 'm');
        mergeTagIdsItem8.addActionListener(new ActionListener() {
           public void actionPerformed(ActionEvent e) {
              Cursor current_cursor = getCursor();
              setCursor(new Cursor ( Cursor.WAIT_CURSOR ));
              DO_mergeTagIds(8);
              setCursor(current_cursor);
           }
        });
        tag8Menu.add(mergeTagIdsItem8);
        JMenuItem separateTagIdsItem8 = new JMenuItem ("Separate Tag Ids", 's');
        separateTagIdsItem8.addActionListener(new ActionListener() {
           public void actionPerformed(ActionEvent e) {
              Cursor current_cursor = getCursor();
              setCursor(new Cursor ( Cursor.WAIT_CURSOR ));
              DO_separateTagIds(8);
              setCursor(current_cursor);
           }
        });
        tag8Menu.add(separateTagIdsItem8);
        JMenuItem editTagIdsItem8 = new JMenuItem ("Edit Tag Id", 'e');
        editTagIdsItem8.addActionListener(new ActionListener() {
           public void actionPerformed(ActionEvent e) {
              Cursor current_cursor = getCursor();
              setCursor(new Cursor ( Cursor.WAIT_CURSOR ));
              DO_editTagIds(8);
              setCursor(current_cursor);
           }
        });
        tag8Menu.add(editTagIdsItem8);
        JMenuItem copyTagItem8 = new JMenuItem ("Copy Tag & Id", 'c');
        copyTagItem8.addActionListener(new ActionListener() {
           public void actionPerformed(ActionEvent e) {
              Cursor current_cursor = getCursor();
              setCursor(new Cursor ( Cursor.WAIT_CURSOR ));
              DO_copyTag(8);
              setCursor(current_cursor);
           }
        });
        tag8Menu.add(copyTagItem8);
        JMenuItem pastTagItem8 = new JMenuItem ("Past Tag & Id", 'p');
        pastTagItem8.addActionListener(new ActionListener() {
           public void actionPerformed(ActionEvent e) {
              Cursor current_cursor = getCursor();
              setCursor(new Cursor ( Cursor.WAIT_CURSOR ));
              DO_pastTag(8);
              setCursor(current_cursor);
           }
        });
        tag8Menu.add(pastTagItem8);
        newTag8MenuItem = new JMenuItem("Add Tag",'a');
        newTag8MenuItem.addActionListener(new ActionListener() {
           public void actionPerformed(ActionEvent e) {
              Cursor current_cursor = getCursor();
              setCursor(new Cursor ( Cursor.WAIT_CURSOR ));
              DO_makeNewTag8();
              setCursor(current_cursor);
           }
        });
        tag8Menu.add(newTag8MenuItem);
        if (!tableSettings.hideTag8) {
            menuButtons.add(tag8Menu);
        }
        table = new AnnotationTable(tableSettings);
        contentPanel = new JPanel();
        setContentPane(contentPanel);
        contentPanel.setLayout(new GridBagLayout());
        contentPanel.add(menuButtons, new GridBagConstraints(0, 0, 1, 1, 0, 0
                ,GridBagConstraints.WEST, GridBagConstraints.HORIZONTAL, new Insets(10, 10, 10, 10), 15, 15));
        contentPanel.add(table, new GridBagConstraints(0, 1, 1, 1, 0.3, 0.3
                            ,GridBagConstraints.CENTER, GridBagConstraints.BOTH, new Insets(10, 10, 10, 10), 0, 0));
        contentPanel.add(messagePanel, new GridBagConstraints(0, 3, 1, 1, 0.3, 0.3
                            ,GridBagConstraints.SOUTH, GridBagConstraints.HORIZONTAL, new Insets(10, 10, 10, 10), 0, 0));
    }
