private void init(){
        setSize(this.dimension);
        setResizable(false);
        setDefaultCloseOperation(DISPOSE_ON_CLOSE);

        JPanel panel = new JPanel(new GridBagLayout());
        //worker field
        workerButton.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                ru.vladambulance.workers.Forms.ListForm listForm = new ru.vladambulance.workers.Forms.ListForm(null);
                call.setWorker(listForm.getSelectedvalue());
                if(call.getWorker() != null){
                    workerField.setText(call.getWorker().toString());
                } else {
                    workerField.setText("");
                }
            }
        });

        JPanel workerPanel = new JPanel(new GridBagLayout());

        workerPanel.add(workerLabel,
                new GridBagConstraints(0,0,1,1,0.5,1,
                        GridBagConstraints.EAST,
                        GridBagConstraints.HORIZONTAL,
                        new Insets(5,5,5,5),0,0));
        workerPanel.add(workerField,
                new GridBagConstraints(1,0,1,1,1,1,
                        GridBagConstraints.EAST,
                        GridBagConstraints.HORIZONTAL,
                        new Insets(5,5,5,5),0,0));
        workerField.setEditable(false);
        workerPanel.add(workerButton,
                new GridBagConstraints(2,0,1,1,0.5,1,
                        GridBagConstraints.EAST,
                        GridBagConstraints.NONE,
                        new Insets(5,5,5,5),0,0));

        workerPanel.add(
                crewLabel,
                new GridBagConstraints(3,0,1,1,0.5,1,
                        GridBagConstraints.WEST,
                        GridBagConstraints.HORIZONTAL,
                        new Insets(5,5,5,5),0,0)
        );
        crewField.setEditable(false);
        workerPanel.add(
                crewField,
                new GridBagConstraints(4, 0, 1, 1, 1, 1,
                        GridBagConstraints.WEST,
                        GridBagConstraints.HORIZONTAL,
                        new Insets(5, 5, 5, 5), 0, 0)
        );
        crewButton.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                ru.vladambulance.crew.forms.ListForm listForm = new ru.vladambulance.crew.forms.ListForm(null);
                call.setCrew(listForm.getSelectedItem());
                if(call.getCrew() != null){
                    crewField.setText(call.getCrew().toString());
                }else{
                    crewField.setText("");
                }
            }
        });
        workerPanel.add(
                crewButton,
                new GridBagConstraints(5,0,1,1,0.5,1,
                        GridBagConstraints.WEST,
                        GridBagConstraints.HORIZONTAL,
                        new Insets(5,5,5,5),0,0)
        );

        reasonField.setEditable(false);
        workerPanel.add(
                reasonField,
                new GridBagConstraints(0, 1, 2, 1, 1, 1,
                        GridBagConstraints.EAST,
                        GridBagConstraints.HORIZONTAL,
                        new Insets(5, 5, 5, 5), 0, 0)
        );
        reasonButton.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                ru.vladambulance.call.Reason.Forms.ListForm listForm =
                        new ru.vladambulance.call.Reason.Forms.ListForm(null);
                call.setCallReason(
                        listForm.getSelectedItem()
                );
                if (call.getCallReason() != null) {
                    reasonField.setText(
                            call.getCallReason().toString()
                    );
                } else {
                    reasonField.setText("");
                }
            }
        });
        workerPanel.add(
                reasonButton,
                new GridBagConstraints(2, 1, 1, 1, 1, 1,
                        GridBagConstraints.EAST,
                        GridBagConstraints.HORIZONTAL,
                        new Insets(5, 5, 5, 5), 0, 0)
        );
        typeField.setEditable(false);
        workerPanel.add(
                typeField,
                new GridBagConstraints(3, 1, 2, 1, 1, 1,
                        GridBagConstraints.EAST,
                        GridBagConstraints.HORIZONTAL,
                        new Insets(5, 5, 5, 5), 0, 0)
        );
        typeButton.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                ru.vladambulance.call.Type.Forms.ListForm listForm =
                        new ru.vladambulance.call.Type.Forms.ListForm(null);
                call.setCallType(
                        listForm.getSelectedItem()
                );
                if(call.getCallType() != null){
                    typeField.setText(call.getCallType().toString());
                }else{
                    typeField.setText("");
                }
            }
        });
        workerPanel.add(
                typeButton,
                new GridBagConstraints(5,1,1,1,1,1,
                        GridBagConstraints.EAST,
                        GridBagConstraints.HORIZONTAL,
                        new Insets(5,5,5,5),0,0)
        );
        panel.add(
                workerPanel,
                new GridBagConstraints(0,0,3,1,1,1,
                        GridBagConstraints.NORTH,
                        GridBagConstraints.HORIZONTAL,
                        new Insets(5,5,5,5),0,0)
        );
        //date received-------------------------------------------------------------------------------------------------
        panel.add(dateReceivedLabel,
                new GridBagConstraints(0,1,1,1,0.5,1,
                        GridBagConstraints.EAST,
                        GridBagConstraints.HORIZONTAL,
                        new Insets(5,5,5,5),0,0));
        JPanel dateReceivedPanel = new JPanel(new GridBagLayout());
        dateReceivedPanel.add(dateReceivedYearLabel,
                new GridBagConstraints(0,0,1,1,0.5,1,
                        GridBagConstraints.EAST,
                        GridBagConstraints.HORIZONTAL,
                        new Insets(5,5,5,5),0,0));
        fillYears(dateReceivedYearField);
        dateReceivedPanel.add(dateReceivedYearField,
                new GridBagConstraints(1,0,1,1,1,1,
                        GridBagConstraints.EAST,
                        GridBagConstraints.HORIZONTAL,
                        new Insets(5,5,5,5),0,0));
        dateReceivedPanel.add(dateReceivedMonthLabel,
                new GridBagConstraints(2,0,1,1,0.5,1,
                        GridBagConstraints.EAST,
                        GridBagConstraints.HORIZONTAL,
                        new Insets(5,5,5,5),0,0));
        fillMonths(dateReceivedMonthField);
        dateReceivedPanel.add(dateReceivedMonthField,
                new GridBagConstraints(3,0,1,1,1,1,
                        GridBagConstraints.EAST,
                        GridBagConstraints.HORIZONTAL,
                        new Insets(5,5,5,5),0,0));
        dateReceivedPanel.add(dateReceivedDayLabel,
                new GridBagConstraints(4,0,1,1,0.5,1,
                        GridBagConstraints.EAST,
                        GridBagConstraints.HORIZONTAL,
                        new Insets(5,5,5,5),0,0));
        fillDays(dateReceivedDayField);
        dateReceivedPanel.add(dateReceivedDayField,
                new GridBagConstraints(5,0,1,1,1,1,
                        GridBagConstraints.EAST,
                        GridBagConstraints.HORIZONTAL,
                        new Insets(5,5,5,5),0,0));
        dateReceivedPanel.add(dateReceivedHourLabel,
                new GridBagConstraints(6,0,1,1,0.5,1,
                        GridBagConstraints.EAST,
                        GridBagConstraints.HORIZONTAL,
                        new Insets(5,5,5,5),0,0));
        fillHours(dateReceivedHourField);
        dateReceivedPanel.add(dateReceivedHourField,
                new GridBagConstraints(7,0,1,1,1,1,
                        GridBagConstraints.EAST,
                        GridBagConstraints.HORIZONTAL,
                        new Insets(5,5,5,5),0,0));
        dateReceivedPanel.add(dateReceivedMinuteLabel,
                new GridBagConstraints(8,0,1,1,0.5,1,
                        GridBagConstraints.EAST,
                        GridBagConstraints.HORIZONTAL,
                        new Insets(5,5,5,5),0,0));
        fillMinutes(dateReceivedMinuteField);
        dateReceivedPanel.add(dateReceivedMinuteField,
                new GridBagConstraints(9,0,1,1,1,1,
                        GridBagConstraints.EAST,
                        GridBagConstraints.HORIZONTAL,
                        new Insets(5,5,5,5),0,0));
        panel.add(dateReceivedPanel,
                new GridBagConstraints(1,1,2,1,1,1,
                        GridBagConstraints.EAST,
                        GridBagConstraints.HORIZONTAL,
                        new Insets(5,5,5,5),0,0));
        //date passed-------------------------------------------------------------------------------------------------
        panel.add(datePassedLabel,
                new GridBagConstraints(0,2,1,1,0.5,1,
                        GridBagConstraints.EAST,
                        GridBagConstraints.HORIZONTAL,
                        new Insets(5,5,5,5),0,0));
        JPanel datePassedPanel = new JPanel(new GridBagLayout());
        datePassedPanel.add(datePassedYearLabel,
                new GridBagConstraints(0,0,1,1,0.5,1,
                        GridBagConstraints.EAST,
                        GridBagConstraints.HORIZONTAL,
                        new Insets(5,5,5,5),0,0));
        fillYears(datePassedYearField);
        datePassedPanel.add(datePassedYearField,
                new GridBagConstraints(1,0,1,1,1,1,
                        GridBagConstraints.EAST,
                        GridBagConstraints.HORIZONTAL,
                        new Insets(5,5,5,5),0,0));
        datePassedPanel.add(datePassedMonthLabel,
                new GridBagConstraints(2,0,1,1,0.5,1,
                        GridBagConstraints.EAST,
                        GridBagConstraints.HORIZONTAL,
                        new Insets(5,5,5,5),0,0));
        fillMonths(datePassedMonthField);
        datePassedPanel.add(datePassedMonthField,
                new GridBagConstraints(3,0,1,1,1,1,
                        GridBagConstraints.EAST,
                        GridBagConstraints.HORIZONTAL,
                        new Insets(5,5,5,5),0,0));
        datePassedPanel.add(datePassedDayLabel,
                new GridBagConstraints(4,0,1,1,0.5,1,
                        GridBagConstraints.EAST,
                        GridBagConstraints.HORIZONTAL,
                        new Insets(5,5,5,5),0,0));
        fillDays(datePassedDayField);
        datePassedPanel.add(datePassedDayField,
                new GridBagConstraints(5,0,1,1,1,1,
                        GridBagConstraints.EAST,
                        GridBagConstraints.HORIZONTAL,
                        new Insets(5,5,5,5),0,0));
        datePassedPanel.add(datePassedHourLabel,
                new GridBagConstraints(6,0,1,1,0.5,1,
                        GridBagConstraints.EAST,
                        GridBagConstraints.HORIZONTAL,
                        new Insets(5,5,5,5),0,0));
        fillHours(datePassedHourField);
        datePassedPanel.add(datePassedHourField,
                new GridBagConstraints(7,0,1,1,1,1,
                        GridBagConstraints.EAST,
                        GridBagConstraints.HORIZONTAL,
                        new Insets(5,5,5,5),0,0));
        datePassedPanel.add(datePassedMinuteLabel,
                new GridBagConstraints(8,0,1,1,0.5,1,
                        GridBagConstraints.EAST,
                        GridBagConstraints.HORIZONTAL,
                        new Insets(5,5,5,5),0,0));
        fillMinutes(datePassedMinuteField);
        datePassedPanel.add(datePassedMinuteField,
                new GridBagConstraints(9,0,1,1,1,1,
                        GridBagConstraints.EAST,
                        GridBagConstraints.HORIZONTAL,
                        new Insets(5,5,5,5),0,0));
        panel.add(datePassedPanel,
                new GridBagConstraints(1,2,2,1,1,1,
                        GridBagConstraints.EAST,
                        GridBagConstraints.HORIZONTAL,
                        new Insets(5,5,5,5),0,0));

        //caller information
        panel.add(callerNameLabel,
                new GridBagConstraints(0,3,1,1,0.5,1,
                        GridBagConstraints.EAST,
                        GridBagConstraints.HORIZONTAL,
                        new Insets(5,5,5,5),0,0));
        panel.add(callerNameField,
                new GridBagConstraints(1,3,2,1,0.5,1,
                        GridBagConstraints.EAST,
                        GridBagConstraints.HORIZONTAL,
                        new Insets(5,5,5,5),0,0));

        //patient field
        patientButton.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                PatientsListForm listForm = new PatientsListForm(null);
                call.setPatient(listForm.getSelectedValue());
                if(call.getPatient() != null){
                    patientField.setText(call.getPatient().toString());
                } else {
                    patientField.setText("");
                }
            }
        });
        panel.add(patientLabel,
                new GridBagConstraints(0,4,1,1,0.5,1,
                        GridBagConstraints.EAST,
                        GridBagConstraints.HORIZONTAL,
                        new Insets(5,5,5,5),0,0));
        panel.add(patientButton,
                new GridBagConstraints(2,4,1,1,0.5,1,
                        GridBagConstraints.EAST,
                        GridBagConstraints.NONE,
                        new Insets(5,5,5,5),0,0));
        patientField.setEditable(false);
        panel.add(patientField,
                new GridBagConstraints(1,4,1,1,0.5,1,
                        GridBagConstraints.EAST,
                        GridBagConstraints.HORIZONTAL,
                        new Insets(5,5,5,5),0,0));

        //address information----------------------------------------------------------------
        JPanel addressPanel = new JPanel(new GridBagLayout());
        addressPanel.add(
                addressSubjectLabel,
                new GridBagConstraints(0,0,1,1,1,1,
                        GridBagConstraints.EAST,
                        GridBagConstraints.HORIZONTAL,
                        new Insets(5,5,5,5),0,0)
        );
        addressSubjectField.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                subjectChange();
            }
        });
        addressPanel.add(
                addressSubjectField,
                new GridBagConstraints(1, 0, 1, 1, 1, 1,
                        GridBagConstraints.EAST,
                        GridBagConstraints.HORIZONTAL,
                        new Insets(5, 5, 5, 5), 0, 0)
        );
        addressPanel.add(
                addressRegionLabel,
                new GridBagConstraints(2,0,1,1,1,1,
                        GridBagConstraints.EAST,
                        GridBagConstraints.HORIZONTAL,
                        new Insets(5,5,5,5),0,0)
        );
        addressRegionField.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                addressCityField.removeAllItems();
                addressCityField.setEnabled(false);
                addressStreetField.removeAllItems();
                addressStreetField.setEnabled(false);
                addressHouseField.setText("");
                addressHouseField.setEnabled(false);
                addressAptField.setText("");
                addressAptField.setEnabled(false);
                Subject subject = (Subject) addressRegionField.getSelectedItem();
                if (subject.getCode().endsWith("100000")) {
                    addressCityField.setModel(new KladrComboBoxModel(
                            subject.getCode(),
                            KladrComboBoxModel.MICROREGIONS
                    ));
                } else {
                    addressCityField.setModel(new KladrComboBoxModel(
                            subject.getCode(),
                            KladrComboBoxModel.CITY
                    ));
                }

                addressCityField.setEnabled(true);
            }
        });
        addressRegionField.setEnabled(false);
        addressPanel.add(
                addressRegionField,
                new GridBagConstraints(3, 0, 1, 1, 1, 1,
                        GridBagConstraints.EAST,
                        GridBagConstraints.HORIZONTAL,
                        new Insets(5, 5, 5, 5), 0, 0)
        );
        addressPanel.add(
                addressCityLabel,
                new GridBagConstraints(0,1,1,1,1,1,
                        GridBagConstraints.EAST,
                        GridBagConstraints.HORIZONTAL,
                        new Insets(5,5,5,5),0,0)
        );
        addressCityField.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                addressStreetField.setEnabled(false);
                addressStreetField.removeAllItems();
                addressHouseField.setEnabled(false);
                addressHouseField.setText("");
                addressAptField.setEnabled(false);
                addressAptField.setText("");
                Subject subject = (Subject) addressRegionField.getSelectedItem();
                addressStreetField.setModel(new KladrComboBoxModel(
                        subject.getCode(),
                        KladrComboBoxModel.STREET
                ));
                addressStreetField.setEnabled(true);
            }
        });
        addressCityField.setEnabled(false);
        addressPanel.add(
                addressCityField,
                new GridBagConstraints(1, 1, 1, 1, 1, 1,
                        GridBagConstraints.EAST,
                        GridBagConstraints.HORIZONTAL,
                        new Insets(5, 5, 5, 5), 0, 0)
        );
        addressPanel.add(
                addressStreetLabel,
                new GridBagConstraints(2,1,1,1,1,1,
                        GridBagConstraints.EAST,
                        GridBagConstraints.HORIZONTAL,
                        new Insets(5,5,5,5),0,0)
        );
        addressStreetField.setEnabled(false);
        addressStreetField.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                addressHouseField.setText("");
                addressHouseField.setEnabled(true);
                addressAptField.setText("");
                addressAptField.setEnabled(true);
            }
        });
        addressPanel.add(
                addressStreetField,
                new GridBagConstraints(3, 1, 1, 1, 1, 1,
                        GridBagConstraints.EAST,
                        GridBagConstraints.HORIZONTAL,
                        new Insets(5, 5, 5, 5), 0, 0)
        );
        addressPanel.add(
                addressHouseLabel,
                new GridBagConstraints(0,2,1,1,1,1,
                        GridBagConstraints.EAST,
                        GridBagConstraints.HORIZONTAL,
                        new Insets(5,5,5,5),0,0)
        );
        addressHouseField.setEnabled(false);
        addressPanel.add(
                addressHouseField,
                new GridBagConstraints(1, 2, 1, 1, 1, 1,
                        GridBagConstraints.EAST,
                        GridBagConstraints.HORIZONTAL,
                        new Insets(5, 5, 5, 5), 0, 0)
        );
        addressPanel.add(
                addressAptLabel,
                new GridBagConstraints(2,2,1,1,1,1,
                        GridBagConstraints.EAST,
                        GridBagConstraints.HORIZONTAL,
                        new Insets(5,5,5,5),0,0)
        );
        addressAptField.setEnabled(false);
        addressPanel.add(
                addressAptField,
                new GridBagConstraints(3,2,1,1,1,1,
                        GridBagConstraints.EAST,
                        GridBagConstraints.HORIZONTAL,
                        new Insets(5,5,5,5),0,0)
        );
        panel.add(
                addressPanel,
                new GridBagConstraints(0,5,3,1,1,1,
                        GridBagConstraints.CENTER,
                        GridBagConstraints.HORIZONTAL,
                        new Insets(5,5,5,5),0,0)
        );

        //complaints-------------------------------------------------------------------------
        panel.add(
                complaintsLabel,
                new GridBagConstraints(0,6,1,1,1,1,
                        GridBagConstraints.WEST,
                        GridBagConstraints.HORIZONTAL,
                        new Insets(5,5,5,5),0,0)
        );
        panel.add(
                complaintField,
                new GridBagConstraints(1,6,2,1,1,1,
                        GridBagConstraints.WEST,
                        GridBagConstraints.HORIZONTAL,
                        new Insets(5,5,5,5),0,0)
        );

        //crew start date
        panel.add(crewStartDateLabel,
                new GridBagConstraints(0,7,1,1,0.5,1,
                        GridBagConstraints.EAST,
                        GridBagConstraints.HORIZONTAL,
                        new Insets(5,5,5,5),0,0));
        JPanel crewStartPanel = new JPanel(new GridBagLayout());
        crewStartPanel.add(crewStartYearLabel,
                new GridBagConstraints(0,0,1,1,0.5,1,
                        GridBagConstraints.EAST,
                        GridBagConstraints.HORIZONTAL,
                        new Insets(5,5,5,5),0,0));
        fillYears(crewStartDateYearField);
        crewStartPanel.add(crewStartDateYearField,
                new GridBagConstraints(1,0,1,1,1,1,
                        GridBagConstraints.EAST,
                        GridBagConstraints.HORIZONTAL,
                        new Insets(5,5,5,5),0,0));
        crewStartPanel.add(crewStartMonthLabel,
                new GridBagConstraints(2,0,1,1,0.5,1,
                        GridBagConstraints.EAST,
                        GridBagConstraints.HORIZONTAL,
                        new Insets(5,5,5,5),0,0));
        fillMonths(crewStartDateMonthField);
        crewStartPanel.add(crewStartDateMonthField,
                new GridBagConstraints(3,0,1,1,1,1,
                        GridBagConstraints.EAST,
                        GridBagConstraints.HORIZONTAL,
                        new Insets(5,5,5,5),0,0));
        crewStartPanel.add(crewStartDayLabel,
                new GridBagConstraints(4,0,1,1,0.5,1,
                        GridBagConstraints.EAST,
                        GridBagConstraints.HORIZONTAL,
                        new Insets(5,5,5,5),0,0));
        fillDays(crewStartDateDayField);
        crewStartPanel.add(crewStartDateDayField,
                new GridBagConstraints(5,0,1,1,1,1,
                        GridBagConstraints.EAST,
                        GridBagConstraints.HORIZONTAL,
                        new Insets(5,5,5,5),0,0));
        crewStartPanel.add(crewStartHourLabel,
                new GridBagConstraints(6,0,1,1,0.5,1,
                        GridBagConstraints.EAST,
                        GridBagConstraints.HORIZONTAL,
                        new Insets(5,5,5,5),0,0));
        fillHours(crewStartDateHourField);
        crewStartPanel.add(crewStartDateHourField,
                new GridBagConstraints(7,0,1,1,1,1,
                        GridBagConstraints.EAST,
                        GridBagConstraints.HORIZONTAL,
                        new Insets(5,5,5,5),0,0));
        crewStartPanel.add(crewStartMinuteLabel,
                new GridBagConstraints(8,0,1,1,0.5,1,
                        GridBagConstraints.EAST,
                        GridBagConstraints.HORIZONTAL,
                        new Insets(5,5,5,5),0,0));
        fillMinutes(crewStartDateMinuteField);
        crewStartPanel.add(crewStartDateMinuteField,
                new GridBagConstraints(9,0,1,1,1,1,
                        GridBagConstraints.EAST,
                        GridBagConstraints.HORIZONTAL,
                        new Insets(5,5,5,5),0,0));
        panel.add(crewStartPanel,
                new GridBagConstraints(1,7,2,1,1,1,
                        GridBagConstraints.EAST,
                        GridBagConstraints.HORIZONTAL,
                        new Insets(5,5,5,5),0,0));
        //crew off date----------------------------------------------------------------------
        panel.add(crewOffDateLabel,
                new GridBagConstraints(0,8,1,1,0.5,1,
                        GridBagConstraints.EAST,
                        GridBagConstraints.HORIZONTAL,
                        new Insets(5,5,5,5),0,0));
        JPanel crewOffPanel = new JPanel(new GridBagLayout());
        crewOffPanel.add(crewOffYearLabel,
                new GridBagConstraints(0,0,1,1,0.5,1,
                        GridBagConstraints.EAST,
                        GridBagConstraints.HORIZONTAL,
                        new Insets(5,5,5,5),0,0));
        fillYears(crewOffDateYearField);
        crewOffPanel.add(crewOffDateYearField,
                new GridBagConstraints(1,0,1,1,1,1,
                        GridBagConstraints.EAST,
                        GridBagConstraints.HORIZONTAL,
                        new Insets(5,5,5,5),0,0));
        crewOffPanel.add(crewOffMonthLabel,
                new GridBagConstraints(2,0,1,1,0.5,1,
                        GridBagConstraints.EAST,
                        GridBagConstraints.HORIZONTAL,
                        new Insets(5,5,5,5),0,0));
        fillMonths(crewOffDateMonthField);
        crewOffPanel.add(crewOffDateMonthField,
                new GridBagConstraints(3,0,1,1,1,1,
                        GridBagConstraints.EAST,
                        GridBagConstraints.HORIZONTAL,
                        new Insets(5,5,5,5),0,0));
        crewOffPanel.add(crewOffDayLabel,
                new GridBagConstraints(4,0,1,1,0.5,1,
                        GridBagConstraints.EAST,
                        GridBagConstraints.HORIZONTAL,
                        new Insets(5,5,5,5),0,0));
        fillDays(crewOffDateDayField);
        crewOffPanel.add(crewOffDateDayField,
                new GridBagConstraints(5,0,1,1,1,1,
                        GridBagConstraints.EAST,
                        GridBagConstraints.HORIZONTAL,
                        new Insets(5,5,5,5),0,0));
        crewOffPanel.add(crewOffHourLabel,
                new GridBagConstraints(6,0,1,1,0.5,1,
                        GridBagConstraints.EAST,
                        GridBagConstraints.HORIZONTAL,
                        new Insets(5,5,5,5),0,0));
        fillHours(crewOffDateHourField);
        crewOffPanel.add(crewOffDateHourField,
                new GridBagConstraints(7,0,1,1,1,1,
                        GridBagConstraints.EAST,
                        GridBagConstraints.HORIZONTAL,
                        new Insets(5,5,5,5),0,0));
        crewOffPanel.add(crewOffMinuteLabel,
                new GridBagConstraints(8,0,1,1,0.5,1,
                        GridBagConstraints.EAST,
                        GridBagConstraints.HORIZONTAL,
                        new Insets(5,5,5,5),0,0));
        fillMinutes(crewOffDateMinuteField);
        crewOffPanel.add(crewOffDateMinuteField,
                new GridBagConstraints(9,0,1,1,1,1,
                        GridBagConstraints.EAST,
                        GridBagConstraints.HORIZONTAL,
                        new Insets(5,5,5,5),0,0));
        panel.add(crewOffPanel,
                new GridBagConstraints(1,8,2,1,1,1,
                        GridBagConstraints.EAST,
                        GridBagConstraints.HORIZONTAL,
                        new Insets(5,5,5,5),0,0));



        //crew arrival date----------------------------------------------------------------------
        panel.add(crewArrivalDateLabel,
                new GridBagConstraints(0,9,1,1,0.5,1,
                        GridBagConstraints.EAST,
                        GridBagConstraints.HORIZONTAL,
                        new Insets(5,5,5,5),0,0));
        JPanel crewArrivalPanel = new JPanel(new GridBagLayout());
        crewArrivalPanel.add(crewArrivalYearLabel,
                new GridBagConstraints(0,0,1,1,0.5,1,
                        GridBagConstraints.EAST,
                        GridBagConstraints.HORIZONTAL,
                        new Insets(5,5,5,5),0,0));
        fillYears(crewArrivalDateYearField);
        crewArrivalPanel.add(crewArrivalDateYearField,
                new GridBagConstraints(1,0,1,1,1,1,
                        GridBagConstraints.EAST,
                        GridBagConstraints.HORIZONTAL,
                        new Insets(5,5,5,5),0,0));
        crewArrivalPanel.add(crewArrivalMonthLabel,
                new GridBagConstraints(2,0,1,1,0.5,1,
                        GridBagConstraints.EAST,
                        GridBagConstraints.HORIZONTAL,
                        new Insets(5,5,5,5),0,0));
        fillMonths(crewArrivalDateMonthField);
        crewArrivalPanel.add(crewArrivalDateMonthField,
                new GridBagConstraints(3,0,1,1,1,1,
                        GridBagConstraints.EAST,
                        GridBagConstraints.HORIZONTAL,
                        new Insets(5,5,5,5),0,0));
        crewArrivalPanel.add(crewArrivalDayLabel,
                new GridBagConstraints(4,0,1,1,0.5,1,
                        GridBagConstraints.EAST,
                        GridBagConstraints.HORIZONTAL,
                        new Insets(5,5,5,5),0,0));
        fillDays(crewArrivalDateDayField);
        crewArrivalPanel.add(crewArrivalDateDayField,
                new GridBagConstraints(5,0,1,1,1,1,
                        GridBagConstraints.EAST,
                        GridBagConstraints.HORIZONTAL,
                        new Insets(5,5,5,5),0,0));
        crewArrivalPanel.add(crewArrivalHourLabel,
                new GridBagConstraints(6,0,1,1,0.5,1,
                        GridBagConstraints.EAST,
                        GridBagConstraints.HORIZONTAL,
                        new Insets(5,5,5,5),0,0));
        fillHours(crewArrivalDateHourField);
        crewArrivalPanel.add(crewArrivalDateHourField,
                new GridBagConstraints(7,0,1,1,1,1,
                        GridBagConstraints.EAST,
                        GridBagConstraints.HORIZONTAL,
                        new Insets(5,5,5,5),0,0));
        crewArrivalPanel.add(crewArrivalMinuteLabel,
                new GridBagConstraints(8,0,1,1,0.5,1,
                        GridBagConstraints.EAST,
                        GridBagConstraints.HORIZONTAL,
                        new Insets(5,5,5,5),0,0));
        fillMinutes(crewArrivalDateMinuteField);
        crewArrivalPanel.add(crewArrivalDateMinuteField,
                new GridBagConstraints(9,0,1,1,1,1,
                        GridBagConstraints.EAST,
                        GridBagConstraints.HORIZONTAL,
                        new Insets(5,5,5,5),0,0));
        panel.add(crewArrivalPanel,
                new GridBagConstraints(1,9,2,1,1,1,
                        GridBagConstraints.EAST,
                        GridBagConstraints.HORIZONTAL,
                        new Insets(5,5,5,5),0,0));

        //result field-----------------------------------------------------------------------
        JPanel commonInfoPanel = new JPanel(new GridBagLayout());
        commonInfoPanel.add(
                resultLabel,
                new GridBagConstraints(
                        0,0,1,1,1,1,
                        GridBagConstraints.WEST,
                        GridBagConstraints.HORIZONTAL,
                        new Insets(5,5,5,5),0,0
                )
        );
        commonInfoPanel.add(
                diacrisisLabel,
                new GridBagConstraints(
                        1,0,1,1,1,1,
                        GridBagConstraints.WEST,
                        GridBagConstraints.HORIZONTAL,
                        new Insets(5,5,5,5),0,0
                )
        );
        commonInfoPanel.add(
                commentsLabel,
                new GridBagConstraints(
                        2,0,1,1,1,1,
                        GridBagConstraints.WEST,
                        GridBagConstraints.HORIZONTAL,
                        new Insets(5,5,5,5),0,0
                )
        );
        commonInfoPanel.add(
                resultField,
                new GridBagConstraints(
                        0,1,1,1,1,1,
                        GridBagConstraints.WEST,
                        GridBagConstraints.HORIZONTAL,
                        new Insets(5,5,5,5),0,0
                )
        );
        commonInfoPanel.add(
                diacrisisField,
                new GridBagConstraints(
                        1,1,1,1,1,1,
                        GridBagConstraints.WEST,
                        GridBagConstraints.HORIZONTAL,
                        new Insets(5,5,5,5),0,0
                )
        );
        commonInfoPanel.add(
                commentsField,
                new GridBagConstraints(
                        2,1,1,1,1,1,
                        GridBagConstraints.WEST,
                        GridBagConstraints.HORIZONTAL,
                        new Insets(5,5,5,5),0,0
                )
        );
        panel.add(
                commonInfoPanel,
                new GridBagConstraints(
                        0,10,3,1,1,1,
                        GridBagConstraints.WEST,
                        GridBagConstraints.HORIZONTAL,
                        new Insets(5,5,5,5),0,0
                )
        );

        //buttons----------------------------------------------------------------------------
        JPanel buttonsPanel = new JPanel(new GridBagLayout());
        saveButton.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                save();
            }
        });
        buttonsPanel.add(
                saveButton,
                new GridBagConstraints(
                        0,0,1,1,1,1,
                        GridBagConstraints.EAST,
                        GridBagConstraints.NONE,
                        new Insets(5,5,5,5),0,0
                )
        );
        cancelButton.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                cancel();
            }
        });
        buttonsPanel.add(
                cancelButton,
                new GridBagConstraints(
                        1,0,1,1,1,1,
                        GridBagConstraints.WEST,
                        GridBagConstraints.NONE,
                        new Insets(5,5,5,5),0,0
                )
        );
        panel.add(
                buttonsPanel,
                new GridBagConstraints(
                        0,11,3,1,1,1,
                        GridBagConstraints.WEST,
                        GridBagConstraints.HORIZONTAL,
                        new Insets(5,5,5,5),0,0
                )
        );

        add(panel);
    }