private void initComponents() {
		mainPanel = new JPanel();
		mainPanel.setLayout(new BorderLayout());

        outerSplitPane = new javax.swing.JSplitPane();
        rightSplitPane = new javax.swing.JSplitPane();
		
		defaultDisplayPane = new DisplayPane();
		
		// Create the outer split pane, which houses the file tree panel at left and the another split
		// pane at right		
		int panelWidth = 200;
        if (props.getProperty("fileTreePanel.width")!=null) {
        	int width = Integer.parseInt(props.getProperty("fileTreePanel.width"));
        	if (width>1 && width < 1000)
        		panelWidth = width;
        }
        
        fileTreePanel = new FileTreePanel(this);
        
        outerSplitPane.setDividerLocation(panelWidth);
        
        try {
        	outerSplitPane.setLeftComponent((Component)fileTreePanel);
        }
        catch (Exception ex) {
        	//Some implementations of fileTree may not be components, which I guess we permit 
        	//for now
        }
        
        outerSplitPane.setRightComponent(rightSplitPane);
        outerSplitPane.setBorder(BorderFactory.createEmptyBorder(0, 0, 4, 0));
        
        // Create the display pane, which lives at upper right 
        defaultDisplayPane.setMinimumSize(new java.awt.Dimension(120, 200));
        defaultDisplayPane.setPreferredSize(new java.awt.Dimension(120, 350));
        
        //ImageIcon cowfishImage = new ImageIcon(iconPath + "justTheFish.png");
       // JLabel defaultLabel = new JLabel(cowfishImage);
        welcomePanel = new WelcomePanel();
                
		defaultDisplayPane.addTab("Welcome", welcomePanel);
		defaultDisplayPane.setTabComponentAt(defaultDisplayPane.indexOfComponent(welcomePanel) , new TabPaneTab("Welcome", this, null));
		defaultDisplayPane.setOpaque(false);
		
		rightSplitPane.setOrientation(javax.swing.JSplitPane.VERTICAL_SPLIT);
        rightSplitPane.setLeftComponent(defaultDisplayPane);
        rightSplitPane.setOpaque(false);
        if (props.getProperty("displayPane.height")!=null) {
        	int dispHeight = Integer.parseInt(props.getProperty("displayPane.height"));
        	if (dispHeight>1 && dispHeight < 1000)
        		rightSplitPane.setDividerLocation(dispHeight);
        }

		rightSplitPane.setBorder(BorderFactory.createEmptyBorder());
		
		
        //Add the analysis pane to the bottom of the right-hand split pane
        analysisPane = new AnalysisPane(this);
        rightSplitPane.setRightComponent(analysisPane);
		
		// Create the bottom panel and labels ////////////////////////////////
		bottomPanel = new FancyPanel();
		bottomPanelRightLabel = new javax.swing.JLabel();
        bottomPanelLeftLabel = new javax.swing.JLabel();
        
        bottomPanelRightLabel.setText("");
		String fontFace = bottomPanelRightLabel.getFont().getFontName();
		int fontSize = 10;
		bottomPanelRightLabel.setFont(new Font(fontFace, Font.PLAIN, fontSize));

		bottomPanelLeftLabel.setText("");
		fontFace = bottomPanelLeftLabel.getFont().getFontName();
		bottomPanelLeftLabel.setFont(new Font(fontFace, Font.PLAIN, fontSize));

        bottomPanel.setMaximumSize(new java.awt.Dimension(32767, 13));
        bottomPanel.setMinimumSize(new java.awt.Dimension(100, 13));
        bottomPanel.setPreferredSize(new java.awt.Dimension(600, 13));
        bottomPanel.setBorder(BorderFactory.createLineBorder(new Color(185, 185, 185)));
        bottomPanel.setBackground(new Color(253, 253, 253));
        bottomPanel.setLayout(new BoxLayout(bottomPanel, BoxLayout.X_AXIS));
        bottomPanel.add(bottomPanelLeftLabel);
        bottomPanel.add(Box.createHorizontalGlue());
        bottomPanel.add(bottomPanelRightLabel);
        bottomPanel.add(Box.createHorizontalStrut(10));
		
        //Add stuff to the main panel
        mainPanel.setBorder(BorderFactory.createEmptyBorder(2,4,1,4));
        mainPanel.add(outerSplitPane, BorderLayout.CENTER);
        mainPanel.add(bottomPanel, BorderLayout.SOUTH);
		
        this.getContentPane().add(mainPanel);
        
		fileChooser = new JFileChooser();
	}