private void initialize() throws ParseException {
		
		controleInstitucional = new ControleInstitucional();
		controleAtividade = new ControleAtividade();
		recursosSelecionados = new HashMap<>();
		frame = new JFrame();
		frame.setBounds(100, 100, 450, 300);
		frame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
		frame.getContentPane().setLayout(new MigLayout("", "[][grow]", "[][][][][][][][][]"));
		frame.setVisible(true);
		frame.setSize(640,480);
		
		JLabel lblCdigo = new JLabel("Codigo:");
		frame.getContentPane().add(lblCdigo, "cell 0 0,alignx trailing");
		
		codigo = new JTextField();
		codigo.setEditable(false);
		frame.getContentPane().add(codigo, "cell 1 0,growx");
		codigo.setColumns(10);
		
		codAtividade = controleAtividade.recuperaCodigoAtivdade();
		
		codigo.setText(codAtividade);
		
		JLabel lblProfessor = new JLabel("Professor:");
		frame.getContentPane().add(lblProfessor, "cell 0 1,alignx trailing");
		
		Object[] vetorProfessor = controleInstitucional.buscarProfessor("").toArray();
		
		professorCombo = new JComboBox<>();
		professorCombo.setModel(new DefaultComboBoxModel(vetorProfessor));
		professorCombo.setEditable(true);
		frame.getContentPane().add(professorCombo, "cell 1 1,growx");
		
		JLabel lblTipoDeRecurso = new JLabel("Tipo de Recurso:");
		frame.getContentPane().add(lblTipoDeRecurso, "cell 0 2,alignx trailing");
		
		Object[] vetorTipoRecurso;
		vetorTipoRecurso = controleInstitucional.buscarTipoRecurso("").toArray();
		tipoRecursoCombo = new JComboBox();
		
		tipoRecursoCombo.addActionListener(new ActionListener() {
			
			public void actionPerformed(ActionEvent arg0) {
				
				tipoRec = (TipoRecurso) tipoRecursoCombo.getSelectedItem(); 
				Recurso[] recursoArray = new Recurso[tipoRec.listarRecursos().size()];
				for(int i = 0; i < recursoArray.length; i++){
					recursoArray[i] = (Recurso) tipoRec.listarRecursos().toArray()[i];
				}
				
				recursoJlist.setListData(recursoArray);
			}
		});
		
		tipoRecursoCombo.setModel(new DefaultComboBoxModel(vetorTipoRecurso));
		tipoRecursoCombo.setEditable(true);
		frame.getContentPane().add(tipoRecursoCombo, "cell 1 2,growx");
		
		/***************/
		tipoRec = (TipoRecurso) tipoRecursoCombo.getSelectedItem();
		/***************/
		
		JLabel lblRecurso = new JLabel("Recurso:");
		frame.getContentPane().add(lblRecurso, "cell 0 3,alignx trailing");
		
		Recurso[] recursoArray = new Recurso[tipoRec.listarRecursos().size()];
		for(int i = 0; i < recursoArray.length; i++){
			recursoArray[i] = (Recurso) tipoRec.listarRecursos().toArray()[i];
		}
		recursoJlist = new JList<Recurso>();
		recursoJlist.setListData(recursoArray);
		frame.getContentPane().add(recursoJlist, "cell 1 3,growx");
		
		JLabel lblIntervalo = new JLabel("Intervalo:");
		frame.getContentPane().add(lblIntervalo, "cell 0 4,alignx trailing");
		
		Object[] vetorIntervalo;
		vetorIntervalo = intervalos.values();
		intervaloCombo = new JComboBox<Intervalo>();
		intervaloCombo.setModel(new DefaultComboBoxModel(vetorIntervalo));
		intervaloCombo.setEditable(true);
		frame.getContentPane().add(intervaloCombo, "cell 1 4,growx");
		
		/*******************************************************/
		
		ActionListener salvarAtividade = new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				Usuario usr = Usuario.recuperaUsuarioLogado();
				Tecnico tec = null;
				if(usr instanceof Tecnico)
					tec = (Tecnico)usr;
				controleAtividade.inserir(codigo.getText(), (Professor)professorCombo.getSelectedItem() , tec, recursosSelecionados.values(), (Intervalo)intervaloCombo.getSelectedItem() , Status.PENDENTE, dataTextField.getText());
			}
		};
		
		/*********************************************************/
		
		JLabel lblData = new JLabel("Data:");
		frame.getContentPane().add(lblData, "cell 0 5,alignx trailing");
		
		MaskFormatter mascara = new MaskFormatter("##/##/####");
		mascara.setPlaceholderCharacter(' ');
		dataTextField = new JFormattedTextField(mascara);
		
		dataTextField.setColumns(3);
		frame.getContentPane().add(dataTextField, "cell 1 5,growx");
		
		recursoEscolhido = new JList<Recurso>();
		//recursoEscolhido.setListData(recursoArray);
		frame.getContentPane().add(recursoEscolhido, "cell 1 8,growx");
		
		JButton btnAdicionarRecurso = new JButton("Adicionar Recurso");
		frame.getContentPane().add(btnAdicionarRecurso, "cell 1 3,alignx trailing");
		
		btnAdicionarRecurso.addMouseListener(new MouseAdapter() {
			@Override
			public void mouseClicked(MouseEvent arg0) {
				
				for (Recurso recurso : recursoJlist.getSelectedValuesList())
					recursosSelecionados.put(recurso.recuperarPatrimonio(), recurso);
				
				Recurso[] recursoArray = new Recurso[recursosSelecionados.size()];
				
				Iterator<Entry<String, Recurso>> it = recursosSelecionados.entrySet().iterator();
				
				int i = 0;
				
				while(it.hasNext()) {
					Map.Entry par = (Map.Entry)it.next(); 
					recursoArray[i++] = (Recurso) par.getValue();
				}
				
				recursoEscolhido.setListData(recursoArray);
			}
		});

		JButton btnCancelar = new JButton("Cancelar");
		btnCancelar.addActionListener(new ActionListener() {
			
			@Override
			public void actionPerformed(ActionEvent arg0) {
				frame.dispose();
			}
		});
		
		frame.getContentPane().add(btnCancelar, "flowx,cell 1 9");
		
		JButton btnLimpar = new JButton("Limpar");
		
		btnLimpar.addMouseListener(new MouseAdapter() {
			@Override
			public void mouseClicked(MouseEvent arg0) {
				
				Recurso[] recursoArray = new Recurso[0];
				recursoEscolhido.setListData(recursoArray);
				recursosSelecionados.clear();
			}
		});
		
		frame.getContentPane().add(btnLimpar, "cell 1 9");
		
		JButton btnSalvar = new JButton("Salvar");
		frame.getContentPane().add(btnSalvar, "cell 1 9");
		btnSalvar.addActionListener(salvarAtividade);
	}