Search in sources :

Example 1 with WebViewConsole

use of com.kyj.fx.voeditor.visual.component.console.WebViewConsole in project Gargoyle by callakrsos.

the class SystemLayoutViewController method initialize.

@FXML
public void initialize() {
    // 쿼리 리스너를 등록
    DbUtil.registQuertyListener(this);
    try {
        FXMLLoader loader = FxUtil.createNewFxmlLoader();
        loader.setLocation(SystemLayoutViewController.class.getResource("DAOLoaderView.fxml"));
        TitledPane titledPane = loader.load();
        VBox.setVgrow(titledPane, Priority.ALWAYS);
        accordionItems.getChildren().add(titledPane);
        DAOLoaderController controller = loader.getController();
        controller.setSystemLayoutViewController(this);
    } catch (IOException e1) {
        e1.printStackTrace();
    }
    SharedMemory.setSystemLayoutView(this);
    SharedMemory.setWorkspaceTab(tabPanWorkspace);
    // tab key에 대한 이벤트 처리 등록....
    SharedMemory.getPrimaryStage().addEventHandler(KeyEvent.ANY, event -> {
        boolean isCloseALLtabKeyCode = event.isControlDown() && event.isShiftDown() && KeyCode.W == event.getCode();
        boolean isTabMoveCode = event.isControlDown() && isNumberCode(event.getCode());
        ObservableList<DockTab> tabs = tabPanWorkspace.getTabs();
        if (isCloseALLtabKeyCode) {
            LOGGER.debug("CLOSE ALL TABS...");
            for (int i = tabs.size() - 1; i > 0; i--) {
                tabs.remove(i);
            }
        } else if (isTabMoveCode) {
            int tabIndex = Integer.parseInt(event.getCode().getName());
            if (tabIndex > 0 && tabs.size() < tabIndex)
                return;
            LOGGER.debug("MOVE TAB" + event.getCode().getName());
            tabPanWorkspace.getSelectionModel().select(tabIndex - 1);
        }
    });
    String baseDir = ResourceLoader.getInstance().get(ResourceLoader.BASE_DIR);
    selectDirFile = new File(baseDir);
    createNewTreeViewMenuItems();
    webvWelcome.getEngine().setJavaScriptEnabled(true);
    webvWelcome.getEngine().load(HOME_URL);
    txtUrl.addEventHandler(KeyEvent.KEY_PRESSED, event -> {
        if (KeyCode.ENTER == event.getCode()) {
            webvWelcome.getEngine().load(txtUrl.getText());
        }
    });
    btnUrlSearch.addEventHandler(MouseEvent.MOUSE_CLICKED, event -> {
        if (event.getClickCount() >= 1) {
            webvWelcome.getEngine().load(txtUrl.getText());
        }
    });
    webvWelcome.setOnKeyPressed(key -> {
        if (key.getCode() == KeyCode.F12) {
            FxUtil.createStageAndShow("Simple Web Console", new WebViewConsole(webvWelcome));
        }
    });
    treeProjectFile.setRoot(createNewTree(selectDirFile));
    treeProjectFile.setShowRoot(false);
    // 트리 컨테스트 요청 이벤트
    treeProjectFile.setOnContextMenuRequested(this::treeProjectFileOnContextMenuRequested);
    // 트리 마우스 이벤트
    treeProjectFile.setOnMouseClicked(this::treeProjectFileOnMouseClick);
    // 트리 키 이벤트
    treeProjectFile.addEventHandler(KeyEvent.KEY_PRESSED, this::treeProjectFileOnKeyPressed);
    /** 플러그인들을 로드함. **/
    Platform.runLater(new Runnable() {

        @Override
        public void run() {
            List<JarWrapper> load = PluginLoader.getInstance().load();
            load.stream().forEach(jarWrapper -> {
                try {
                    String displayMenuName = jarWrapper.getDisplayMenuName();
                    MenuItem pluginMenu = new MenuItem(displayMenuName);
                    pluginMenu.setUserData(jarWrapper);
                    pluginMenu.setOnAction(event -> {
                        JarWrapper jar = (JarWrapper) pluginMenu.getUserData();
                        try {
                            Class<?> nodeClass = jar.getNodeClass();
                            Object newInstance = jar.loader.loadClass(nodeClass.getName()).newInstance();
                            if (newInstance instanceof CloseableParent<?>) {
                                loadNewSystemTab(jar.getDisplayMenuName(), (CloseableParent<?>) newInstance);
                            } else {
                                loadNewSystemTab(jar.getDisplayMenuName(), (Parent) newInstance, SkinManager.getInstance().getJavafxDefaultSkin());
                            }
                        } catch (Exception e) {
                            LOGGER.error("regist fail plugin.");
                            LOGGER.error(ValueUtil.toString(e));
                        }
                    });
                    try {
                        Class<GagoyleParentBeforeLoad> setBeforeParentLoadListenerClass = jarWrapper.getSetOnParentBeforeLoadedListenerClass();
                        if (setBeforeParentLoadListenerClass != null)
                            setOnbeforeParentLoad(setBeforeParentLoadListenerClass.newInstance());
                    } catch (Exception e) {
                        LOGGER.error("regist fail 'GagoyleParentBeforeLoad' listener.");
                    }
                    try {
                        Class<GagoyleParentOnLoaded> addOnParentLoadedListenerClass = jarWrapper.getAddOnParentLoadedListenerClass();
                        if (addOnParentLoadedListenerClass != null)
                            addOnParentLoadedListener(addOnParentLoadedListenerClass.newInstance());
                    } catch (Exception e) {
                        LOGGER.error("regist fail 'GagoyleParentOnLoaded' listener.");
                    }
                    menuPlugins.getItems().add(pluginMenu);
                } catch (Exception e) {
                    LOGGER.debug(ValueUtil.toString(e));
                }
            });
        }
    });
    //tab image 아이콘 처리
    try (InputStream is = getClass().getResourceAsStream("/META-INF/images/eclipse/eview16/packages.gif")) {
        tabPackageExplorer.setGraphic(new ImageView(new Image(is)));
    } catch (IOException e) {
        e.printStackTrace();
    }
    tabPanWorkspace.getTabs().addListener(dockTabCloseListener);
}
Also used : Arrays(java.util.Arrays) StringUtils(org.apache.commons.lang.StringUtils) MultipleSelectionModel(javafx.scene.control.MultipleSelectionModel) ListChangeListener(javafx.collections.ListChangeListener) JavaProjectFileTreeItem(com.kyj.fx.voeditor.visual.component.JavaProjectFileTreeItem) FileUtil(com.kyj.fx.voeditor.visual.util.FileUtil) Path(java.nio.file.Path) SystemUtils(org.apache.commons.lang.SystemUtils) SplitPane(javafx.scene.control.SplitPane) Pair(javafx.util.Pair) Event(javafx.event.Event) KeyEvent(javafx.scene.input.KeyEvent) PluginLoader(com.kyj.fx.voeditor.visual.loder.PluginLoader) Platform(javafx.application.Platform) FxUtil(com.kyj.fx.voeditor.visual.util.FxUtil) ResourceLoader(com.kyj.fx.voeditor.visual.momory.ResourceLoader) XMLTextView(com.kyj.fx.voeditor.visual.component.popup.XMLTextView) ObservableList(javafx.collections.ObservableList) BorderPane(javafx.scene.layout.BorderPane) CodeAnalysisJavaTextArea(com.kyj.fx.voeditor.visual.component.text.CodeAnalysisJavaTextArea) DbExecListener(com.kyj.fx.voeditor.visual.util.DbExecListener) SVNViewer(com.kyj.fx.voeditor.visual.component.scm.SVNViewer) TreeItem(javafx.scene.control.TreeItem) FXCollections(javafx.collections.FXCollections) DialogUtil(com.kyj.fx.voeditor.visual.util.DialogUtil) FilePropertiesComposite(com.kyj.fx.voeditor.visual.component.file.FilePropertiesComposite) FXMLLoader(javafx.fxml.FXMLLoader) SpecResource(com.kyj.fx.voeditor.visual.words.spec.auto.msword.ui.model.SpecResource) UtubeDownloaderComposite(com.kyj.fx.voeditor.visual.component.utube.UtubeDownloaderComposite) Properties(java.util.Properties) ImageViewPane(com.kyj.fx.voeditor.visual.component.ImageViewPane) TitledPane(javafx.scene.control.TitledPane) Node(javafx.scene.Node) IOException(java.io.IOException) FileUtils(org.apache.commons.io.FileUtils) RuntimeClassUtil(com.kyj.fx.voeditor.visual.util.RuntimeClassUtil) File(java.io.File) ReadOnlySingletonConsole(com.kyj.fx.voeditor.visual.component.console.ReadOnlySingletonConsole) GoogleTrendComposite(com.kyj.fx.voeditor.visual.component.google.trend.GoogleTrendComposite) Menu(javafx.scene.control.Menu) ContextMenuEvent(javafx.scene.input.ContextMenuEvent) KeyCodeCombination(javafx.scene.input.KeyCodeCombination) NrchRealtimeSrchFlowComposite(com.kyj.fx.voeditor.visual.component.nrch.realtime.NrchRealtimeSrchFlowComposite) SimpleObjectProperty(javafx.beans.property.SimpleObjectProperty) Tab(javafx.scene.control.Tab) ImageView(javafx.scene.image.ImageView) ResultDialog(com.kyj.fx.voeditor.visual.component.ResultDialog) SkinManager(com.kyj.fx.voeditor.visual.momory.SkinManager) Image(javafx.scene.image.Image) EventHandler(javafx.event.EventHandler) Button(javafx.scene.control.Button) DbUtil(com.kyj.fx.voeditor.visual.util.DbUtil) LoggerFactory(org.slf4j.LoggerFactory) NullExpresion(com.kyj.fx.voeditor.visual.util.NullExpresion) JavaSVNManager(com.kyj.scm.manager.svn.java.JavaSVNManager) SVNWcDbClient(com.kyj.scm.manager.svn.java.SVNWcDbClient) PDFImageBasePane(com.kyj.fx.voeditor.visual.component.PDFImageBasePane) VBox(javafx.scene.layout.VBox) SelectWorkspaceView(com.kyj.fx.voeditor.visual.component.popup.SelectWorkspaceView) PMDCheckedListComposite(com.kyj.fx.voeditor.visual.component.pmd.PMDCheckedListComposite) Parent(javafx.scene.Parent) JavaProjectMemberFileTreeItem(com.kyj.fx.voeditor.visual.component.JavaProjectMemberFileTreeItem) ContextMenu(javafx.scene.control.ContextMenu) GargoyleExtensionFilters(com.kyj.fx.voeditor.visual.util.GargoyleExtensionFilters) CommonsSqllPan(com.kyj.fx.voeditor.visual.component.sql.view.CommonsSqllPan) WindowEvent(javafx.stage.WindowEvent) FXMLTextView(com.kyj.fx.voeditor.visual.component.popup.FXMLTextView) GagoyleWorkspaceOpenResourceView(com.kyj.fx.voeditor.visual.component.popup.GagoyleWorkspaceOpenResourceView) TextField(javafx.scene.control.TextField) Main(com.kyj.fx.voeditor.visual.main.Main) MenuItem(javafx.scene.control.MenuItem) PMDUtil(com.kyj.fx.voeditor.visual.util.PMDUtil) SimpleTextView(com.kyj.fx.voeditor.visual.component.text.SimpleTextView) ConfigResourceLoader(com.kyj.fx.voeditor.visual.momory.ConfigResourceLoader) DockTab(com.kyj.fx.voeditor.visual.component.dock.tab.DockTab) TreeView(javafx.scene.control.TreeView) JarWrapper(com.kyj.fx.voeditor.visual.loder.JarWrapper) FXML(javafx.fxml.FXML) SeparatorMenuItem(javafx.scene.control.SeparatorMenuItem) Priority(javafx.scene.layout.Priority) List(java.util.List) GagoyleParentBeforeLoad(com.kyj.fx.voeditor.visual.framework.GagoyleParentBeforeLoad) SpecTabPane(com.kyj.fx.voeditor.visual.words.spec.auto.msword.ui.tabs.SpecTabPane) GagoyleParentOnLoaded(com.kyj.fx.voeditor.visual.framework.GagoyleParentOnLoaded) Optional(java.util.Optional) LogViewComposite(com.kyj.fx.voeditor.visual.component.text.LogViewComposite) DateUtil(com.kyj.fx.voeditor.visual.util.DateUtil) ReadOnlyConsole(com.kyj.fx.voeditor.visual.component.console.ReadOnlyConsole) Scene(javafx.scene.Scene) DockTabPane(com.kyj.fx.voeditor.visual.component.dock.tab.DockTabPane) DesignerFxComposite(com.kyj.fx.voeditor.visual.component.pmd.DesignerFxComposite) BigTextView(com.kyj.fx.voeditor.visual.component.popup.BigTextView) JavaProcessMonitor(com.kyj.fx.voeditor.visual.component.bci.view.JavaProcessMonitor) MouseEvent(javafx.scene.input.MouseEvent) WebViewConsole(com.kyj.fx.voeditor.visual.component.console.WebViewConsole) FileWrapper(com.kyj.fx.voeditor.visual.component.FileWrapper) ProgramSpecUtil(com.kyj.fx.voeditor.visual.words.spec.auto.msword.util.ProgramSpecUtil) JavaTextView(com.kyj.fx.voeditor.visual.component.popup.JavaTextView) Tooltip(javafx.scene.control.Tooltip) GargoyleException(com.kyj.fx.voeditor.visual.exceptions.GargoyleException) KeyCode(javafx.scene.input.KeyCode) WebView(javafx.scene.web.WebView) ObjectProperty(javafx.beans.property.ObjectProperty) Logger(org.slf4j.Logger) CaptureScreenComposite(com.kyj.fx.voeditor.visual.component.capture.CaptureScreenComposite) ProxyServerComposite(com.kyj.fx.voeditor.visual.component.proxy.ProxyServerComposite) ValueUtil(com.kyj.fx.voeditor.visual.util.ValueUtil) FileInputStream(java.io.FileInputStream) ProjectFileTreeItemCreator(com.kyj.fx.voeditor.visual.component.ProjectFileTreeItemCreator) ActionEvent(javafx.event.ActionEvent) SystemConsole(com.kyj.fx.voeditor.visual.component.console.SystemConsole) Stage(javafx.stage.Stage) Closeable(java.io.Closeable) ExtensionFilter(javafx.stage.FileChooser.ExtensionFilter) InputStream(java.io.InputStream) SharedMemory(com.kyj.fx.voeditor.visual.momory.SharedMemory) Parent(javafx.scene.Parent) Image(javafx.scene.image.Image) FXMLLoader(javafx.fxml.FXMLLoader) JarWrapper(com.kyj.fx.voeditor.visual.loder.JarWrapper) ObservableList(javafx.collections.ObservableList) List(java.util.List) ImageView(javafx.scene.image.ImageView) TitledPane(javafx.scene.control.TitledPane) FileInputStream(java.io.FileInputStream) InputStream(java.io.InputStream) MenuItem(javafx.scene.control.MenuItem) SeparatorMenuItem(javafx.scene.control.SeparatorMenuItem) IOException(java.io.IOException) IOException(java.io.IOException) GargoyleException(com.kyj.fx.voeditor.visual.exceptions.GargoyleException) DockTab(com.kyj.fx.voeditor.visual.component.dock.tab.DockTab) File(java.io.File) WebViewConsole(com.kyj.fx.voeditor.visual.component.console.WebViewConsole) FXML(javafx.fxml.FXML)

Example 2 with WebViewConsole

use of com.kyj.fx.voeditor.visual.component.console.WebViewConsole in project Gargoyle by callakrsos.

the class FxUtil method openBrowser.

public static WebView openBrowser(Node parent, String content, boolean isLink) {
    WebView view = new WebView();
    WebEngine engine = view.getEngine();
    engine.setOnError(err -> {
        String message = err.getMessage();
        DialogUtil.showMessageDialog(FxUtil.getWindow(parent), message);
    });
    view.setOnKeyPressed(key -> {
        if (key.getCode() == KeyCode.F12) {
            FxUtil.createStageAndShow("Simple Web Console", new WebViewConsole(view));
        }
    });
    engine.setJavaScriptEnabled(true);
    engine.setCreatePopupHandler(new Callback<PopupFeatures, WebEngine>() {

        @Override
        public WebEngine call(PopupFeatures p) {
            // Stage stage = new Stage();
            // WebView wv2 = new WebView();
            //
            // wv2.getEngine().setJavaScriptEnabled(true);
            //
            // stage.setScene(new Scene(wv2, BROWSER_WIDTH,
            // BROWSER_HEIGHT));
            // stage.initOwner(parent == null ? (Window) null :
            // parent.getScene().getWindow());
            // stage.show();
            WebView openBrowser = openBrowser(view, "", false);
            return openBrowser.getEngine();
        }
    });
    engine.setOnAlert(ev -> {
        DialogUtil.showMessageDialog(ev.getData());
    });
    engine.setConfirmHandler(new Callback<String, Boolean>() {

        @Override
        public Boolean call(String param) {
            Optional<Pair<String, String>> showYesOrNoDialog = DialogUtil.showYesOrNoDialog("Confirm.", param);
            if (showYesOrNoDialog.isPresent()) {
                Pair<String, String> pair = showYesOrNoDialog.get();
                if (pair == null)
                    return false;
                return "Y".equals(pair.getValue());
            }
            return false;
        }
    });
    engine.setOnAlert((WebEvent<String> wEvent) -> {
        System.out.println("Alert Event  -  Message:  " + wEvent.getData());
    });
    if (isLink)
        engine.load(content);
    else
        engine.loadContent(content);
    BorderPane root = new BorderPane(view);
    TextField txtLink = new TextField(content);
    txtLink.addEventHandler(KeyEvent.KEY_PRESSED, ev -> {
        if (KeyCode.ENTER == ev.getCode())
            engine.load(txtLink.getText());
    });
    root.setTop(txtLink);
    engine.getLoadWorker().stateProperty().addListener(new ChangeListener<State>() {

        @Override
        public void changed(ObservableValue<? extends State> observable, State oldValue, State newValue) {
            // if (newValue == State.SUCCEEDED) {
            String location = engine.getLocation();
            txtLink.setText(location);
        // }
        }
    });
    FxUtil.createStageAndShow(new Scene(root, BROWSER_WIDTH, BROWSER_HEIGHT), stage -> {
        stage.initOwner(parent == null ? (Window) null : parent.getScene().getWindow());
    });
    return view;
}
Also used : Window(javafx.stage.Window) BorderPane(javafx.scene.layout.BorderPane) Optional(java.util.Optional) PopupFeatures(javafx.scene.web.PopupFeatures) Scene(javafx.scene.Scene) WebEngine(javafx.scene.web.WebEngine) State(javafx.concurrent.Worker.State) TextField(javafx.scene.control.TextField) WebView(javafx.scene.web.WebView) WebEvent(javafx.scene.web.WebEvent) WebViewConsole(com.kyj.fx.voeditor.visual.component.console.WebViewConsole) Pair(javafx.util.Pair)

Aggregations

WebViewConsole (com.kyj.fx.voeditor.visual.component.console.WebViewConsole)2 FileWrapper (com.kyj.fx.voeditor.visual.component.FileWrapper)1 ImageViewPane (com.kyj.fx.voeditor.visual.component.ImageViewPane)1 JavaProjectFileTreeItem (com.kyj.fx.voeditor.visual.component.JavaProjectFileTreeItem)1 JavaProjectMemberFileTreeItem (com.kyj.fx.voeditor.visual.component.JavaProjectMemberFileTreeItem)1 PDFImageBasePane (com.kyj.fx.voeditor.visual.component.PDFImageBasePane)1 ProjectFileTreeItemCreator (com.kyj.fx.voeditor.visual.component.ProjectFileTreeItemCreator)1 ResultDialog (com.kyj.fx.voeditor.visual.component.ResultDialog)1 JavaProcessMonitor (com.kyj.fx.voeditor.visual.component.bci.view.JavaProcessMonitor)1 CaptureScreenComposite (com.kyj.fx.voeditor.visual.component.capture.CaptureScreenComposite)1 ReadOnlyConsole (com.kyj.fx.voeditor.visual.component.console.ReadOnlyConsole)1 ReadOnlySingletonConsole (com.kyj.fx.voeditor.visual.component.console.ReadOnlySingletonConsole)1 SystemConsole (com.kyj.fx.voeditor.visual.component.console.SystemConsole)1 DockTab (com.kyj.fx.voeditor.visual.component.dock.tab.DockTab)1 DockTabPane (com.kyj.fx.voeditor.visual.component.dock.tab.DockTabPane)1 FilePropertiesComposite (com.kyj.fx.voeditor.visual.component.file.FilePropertiesComposite)1 GoogleTrendComposite (com.kyj.fx.voeditor.visual.component.google.trend.GoogleTrendComposite)1 NrchRealtimeSrchFlowComposite (com.kyj.fx.voeditor.visual.component.nrch.realtime.NrchRealtimeSrchFlowComposite)1 DesignerFxComposite (com.kyj.fx.voeditor.visual.component.pmd.DesignerFxComposite)1 PMDCheckedListComposite (com.kyj.fx.voeditor.visual.component.pmd.PMDCheckedListComposite)1