Search in sources :

Example 1 with MeerketAbstractVoOpenClassResourceView

use of com.kyj.fx.voeditor.visual.component.popup.MeerketAbstractVoOpenClassResourceView in project Gargoyle by callakrsos.

the class DaoWizardViewController method initialize.

@FXML
public void initialize() {
    tbParams.getSelectionModel().setSelectionMode(SelectionMode.MULTIPLE);
    // this.colProgramTypeLock.setCellValueFactory(v ->
    // v.getValue().lockYnProperty());
    // this.colProgramTypeLock.setCellFactory(v ->{
    // return
    // });
    tbmSysDaoDVOProperty = new SimpleObjectProperty<>(new TbmSysDaoDVO());
    colParamTestValue.setCellFactory(TextFieldTableCell.forTableColumn());
    methodDesc.setCellFactory(TextFieldTableCell.forTableColumn());
    methodName.setCellFactory(TextFieldTableCell.forTableColumn());
    // [시작] 넘버링 컬럼
    colMethodNo.setCellValueFactory(new NumberingCellValueFactory<>(tbMethods.getItems()));
    /*
		 * 2015-11-02 기존에 사용하던 NumberingCellValueFactory을 적용할 수 없음.
		 * colParamNo컬럼같은경우는 method에 따라 데이터의 주소값이 바뀌는 타입이라 주소값이 바뀌는 상태에선 적절한 넘버링
		 * 데이터가 화면에 보여주지않음. 하여 주소값을 계속 유지시킬 수 있도록 tbMethods에서 선택된 메소드정보에서 값을
		 * 참조하여 넘버링을 시킴.
		 *
		 * 2016-04-19 파람의 아이템을 삭제하고 다시 호출했을때 인덱스 순서가 맞지않던 버그 fix
		 */
    colParamNo.setCellValueFactory(param -> {
        return new ReadOnlyObjectWrapper<Integer>(tbParams.getItems().indexOf(param.getValue()) + 1);
    });
    // [끝] 넘버링 컬럼
    colParamTypes.setCellFactory(ChoiceBoxTableCell.forTableColumn("Nomal", "Arrays"));
    // 텍스트의 내용이 변경되면 메모리에 적재시키기 위한 이벤트 함수.
    // 2015.11.17 키 이벤트가 눌릴때 처리되지않게함, 타이밍 문제가 있어, 저장시에 문제가 있음.
    // txtSql.getCodeArea().setOnKeyPressed();
    txtSql.getCodeArea().setOnKeyReleased(event -> {
        if (!event.isShortcutDown()) {
            TbpSysDaoMethodsDVO selectedMethodItem = getSelectedMethodItem();
            if (selectedMethodItem != null)
                selectedMethodItem.setSqlBody(txtSql.getText());
        }
    });
    StringConverter<String> classConverter = new StringConverter<String>() {

        @Override
        public String toString(String clazz) {
            if (clazz == null || clazz.isEmpty())
                return "";
            String result = clazz;
            int lastIndexOf = clazz.lastIndexOf('.');
            if (lastIndexOf >= 0) {
                result = clazz.substring(lastIndexOf + 1);
            }
            return result;
        }

        @Override
        public String fromString(String clazz) {
            return clazz;
        }
    };
    // 메소드 컬럼에서 Result Vo Class를 더블클릭한경우 VO참조를 걸 수 있도록 팝업창을 뜨는 로직 포함되있음.
    colResultVoClass.setCellFactory(param -> {
        TextFieldTableCell<TbpSysDaoMethodsDVO, String> textFieldTableCell = new TextFieldTableCell<>();
        textFieldTableCell.setOnMouseClicked(event -> {
            if (event.getClickCount() == 2) {
                String clazz = textFieldTableCell.getItem();
                try {
                    BaseOpenClassResourceView view = null;
                    if (ValueUtil.isNotEmpty(clazz)) {
                        view = new MeerketAbstractVoOpenClassResourceView(clazz);
                    } else {
                        view = new MeerketAbstractVoOpenClassResourceView();
                    }
                    view.setConsumer(str -> {
                        if (str == null || str.isEmpty())
                            return;
                        try {
                            int selectedItem = tbMethods.getSelectionModel().getSelectedIndex();
                            tbMethods.getItems().get(selectedItem).setResultVoClass(str);
                        } catch (Exception e) {
                            DialogUtil.showExceptionDailog(e, "로드할 수 없는 클래스 유형입니다.");
                            return;
                        }
                    });
                    ResultDialog<String> show = view.show();
                    show.consume();
                } catch (Exception e) {
                    e.printStackTrace();
                }
            }
        });
        textFieldTableCell.setConverter(classConverter);
        return textFieldTableCell;
    });
    colResultVoClass.setCellValueFactory(param -> param.getValue().resultVoClassProperty());
    // SQL 에디터 마우스 클릭이벤트, 선택한 메소드 항목이 없다면 Editable을 활성화 시키지않는다.
    txtSql.getCodeArea().setOnMouseClicked(event -> {
        if (!event.isShortcutDown()) {
            int selectedMethodIndex = getSelectedMethodIndex();
            if (selectedMethodIndex == -1) {
                txtSql.getCodeArea().setEditable(false);
            } else {
                txtSql.getCodeArea().setEditable(true);
            }
        }
    });
    // 2016-08-27 custom 항목 추가. 이 항목추가시 typeMapping.properties 파일의 항목도 추가야함.
    ObservableList<String> collect = DatabaseTypeMappingResourceLoader.getInstance().getEntry().stream().map(v -> v.getValue().toString()).distinct().collect(FxCollectors.toObservableList());
    collect.addAll(Arrays.asList("Integer", "Long", "Double"));
    colProgramType.setCellFactory(ChoiceBoxTableCell.forTableColumn(collect));
    lblMessage.setText(MSG_NO_WARNNING);
    // 메뉴등록작업
    applyContextMenu();
}
Also used : TbmSysDaoDVO(kyj.Fx.dao.wizard.core.model.vo.TbmSysDaoDVO) StringConverter(javafx.util.StringConverter) MeerketAbstractVoOpenClassResourceView(com.kyj.fx.voeditor.visual.component.popup.MeerketAbstractVoOpenClassResourceView) IOException(java.io.IOException) TbpSysDaoMethodsDVO(kyj.Fx.dao.wizard.core.model.vo.TbpSysDaoMethodsDVO) BaseOpenClassResourceView(com.kyj.fx.voeditor.visual.component.popup.BaseOpenClassResourceView) TextFieldTableCell(javafx.scene.control.cell.TextFieldTableCell) ReadOnlyObjectWrapper(javafx.beans.property.ReadOnlyObjectWrapper) FXML(javafx.fxml.FXML)

Aggregations

BaseOpenClassResourceView (com.kyj.fx.voeditor.visual.component.popup.BaseOpenClassResourceView)1 MeerketAbstractVoOpenClassResourceView (com.kyj.fx.voeditor.visual.component.popup.MeerketAbstractVoOpenClassResourceView)1 IOException (java.io.IOException)1 ReadOnlyObjectWrapper (javafx.beans.property.ReadOnlyObjectWrapper)1 FXML (javafx.fxml.FXML)1 TextFieldTableCell (javafx.scene.control.cell.TextFieldTableCell)1 StringConverter (javafx.util.StringConverter)1 TbmSysDaoDVO (kyj.Fx.dao.wizard.core.model.vo.TbmSysDaoDVO)1 TbpSysDaoMethodsDVO (kyj.Fx.dao.wizard.core.model.vo.TbpSysDaoMethodsDVO)1