private JPanel buildTop() {
		JPanel panel = new JPanel();
		panel.setLayout(gl);
						
		JLabel reportLabel = new JLabel("Duplicate Report Folder:");
		
		gc.gridx = 0;
		gc.gridy = 0;
		gl.setConstraints(reportLabel, gc);
		
		panel.add(reportLabel);
		
		reportFolder = new JTextField("C:\\report\\",60);
		
		gc.gridx = 1;
		gc.gridy = 0;
		gl.setConstraints(reportFolder,gc);
		
		panel.add(reportFolder);
		
		reportButton = new JButton("Browse");
		
		reportChooser.setFileHidingEnabled(true);
		reportChooser.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY);
	
		reportButton.addActionListener(new ActionListener() {

			public void actionPerformed(ActionEvent e) {
				
				if (!reportFolder.getText().isEmpty()) {
					File dir = new File(reportFolder.getText());
					
					if (dir.exists() && dir.isDirectory() && dir.canRead() && dir.canWrite() && dir.canExecute()) {
						reportChooser.setCurrentDirectory(dir);
					}
				}
				
				int retVal = reportChooser.showDialog(getSelfRef(), "Choose a Report Directory");
				
				 if (retVal == JFileChooser.APPROVE_OPTION) {
					File file = reportChooser.getSelectedFile();
		            
		            reportFolder.setText(file.getAbsolutePath());
		        }
			}
			
		});
		gc.gridx = 2;
		gc.gridy = 0;
		gl.setConstraints(reportButton,gc);
		
		panel.add(reportButton);
		
		/*
		 * Build the types of reports they can generate
		 */
		
		JPanel reportPanel = buildReportPanel();
		gc.gridx = 1;
		gc.gridy = 1;
		gl.setConstraints(reportPanel,gc);
		
		panel.add(reportPanel);
		
		return panel;
	}