void goToImageByID(String newID){
        //Seach for image in current list of images
        //Goto if found
        for(int i=0;i<imageIDs.length;i++){
            if(imageIDs[i].equals(newID)){
                currentI = i;
                imageChanged();
                mainGUI.tagTree.repaint();//Needs to update not repaint.
                return;
            }
        }

        String[] possibleTags = mainGUI.mainImageDB.getTagIDsFromImage(newID);
        if (possibleTags.length > 0) {
            if (!currentFilter.equals(possibleTags[0])) {
                mainGUI.setState(new ProgramState(LoadType.Filter, mainGUI, possibleTags[0]));
                mainGUI.getState().goToImageByID(newID);
            }
            return;
        } else {
            if (!currentFilter.equals("-1")) {
                mainGUI.setState(new ProgramState(LoadType.Refresh, mainGUI, "-1"));
                mainGUI.getState().goToImageByID(newID);
                return;
            }
        }

        JOptionPane.showMessageDialog(mainGUI.w, "Unable to jumping to image " + newID);
    }