亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? swingbuilder.java

?? Groovy動態語言 運行在JVM中的動態語言 可以方便的處理業務邏輯變化大的業務
?? JAVA
?? 第 1 頁 / 共 3 頁
字號:
    protected void nodeCompleted(Object parent, Object node) {
        // set models after the node has been completed
        if (node instanceof TableModel && parent instanceof JTable) {
            JTable table = (JTable) parent;
            TableModel model = (TableModel) node;
            table.setModel(model);
        }
        if (node instanceof Startable) {
            Startable startable = (Startable) node;
            startable.start();
        }
        if (node instanceof Window) {
            if (!containingWindows.isEmpty() && containingWindows.getLast() == node) {
                containingWindows.removeLast();
            }
        }
    }

    protected Object createNode(Object name) {
        return createNode(name, Collections.EMPTY_MAP);
    }

    protected Object createNode(Object name, Object value) {
        if (passThroughNodes.containsKey(name) && (value != null) && ((Class)passThroughNodes.get(name)).isAssignableFrom(value.getClass())) {
            // value may need to go into containing windows list
            if (value instanceof Window) {
                containingWindows.add(value);
            }
            return value;
        }
        else if (value instanceof String) {
            Object widget = createNode(name);
            if (widget != null) {
                InvokerHelper.invokeMethod(widget, "setText", value);
            }
            return widget;
        }
        else {
        	throw new MissingMethodException((String) name, getClass(), new Object[] {value}, false);
        }
    }

    protected Object createNode(Object name, Map attributes, Object value) {
        if (passThroughNodes.containsKey(name) && (value != null) && ((Class)passThroughNodes.get(name)).isAssignableFrom(value.getClass())) {
            // value may need to go into containing windows list
            if (value instanceof Window) {
                containingWindows.add(value);
            }
            handleWidgetAttributes(value, attributes);
            return value;
        }
        else { 
            Object widget = createNode(name, attributes);
            if (widget != null) {
                InvokerHelper.invokeMethod(widget, "setText", value.toString());
            }
            return widget;
        }
    }
    
    protected Object createNode(Object name, Map attributes) {
        String widgetName = (String) attributes.remove("id");
        constraints = attributes.remove("constraints");
        Object widget = null;
        if (passThroughNodes.containsKey(name)) {
            widget = attributes.get(name);
            if ((widget != null) && ((Class)passThroughNodes.get(name)).isAssignableFrom(widget.getClass())) {
                // value may need to go into containing windows list
                if (widget instanceof Window) {
                    containingWindows.add(widget);
                }
                attributes.remove(name);
            }
            else {
                widget = null;
            }
        }
        if (widget == null) {
            Factory factory = (Factory) factories.get(name);
            if (factory != null) {
                try {
                    widget = factory.newInstance(attributes);
                    if (widgetName != null) {
                        widgets.put(widgetName, widget);
                    }
                    if (widget == null) {
                        log.log(Level.WARNING, "Factory for name: " + name + " returned null");
                    }
                    else {
                        if (log.isLoggable(Level.FINE)) {
                            log.fine("For name: " + name + " created widget: " + widget);
                        }
                    }
                }
                catch (Exception e) {
                    throw new RuntimeException("Failed to create component for" + name + " reason: " + e, e);
                }
            }
            else {
                log.log(Level.WARNING, "Could not find match for name: " + name);
            }
        }
        handleWidgetAttributes(widget, attributes);
        return widget;
    }

    protected void handleWidgetAttributes(Object widget, Map attributes) {
        if (widget != null) {
            if (widget instanceof Action) {
                /** @todo we could move this custom logic into the MetaClass for Action */
                Action action = (Action) widget;

                Closure closure = (Closure) attributes.remove("closure");
                if (closure != null && action instanceof DefaultAction) {
                    DefaultAction defaultAction = (DefaultAction) action;
                    defaultAction.setClosure(closure);
                }

                Object accel = attributes.remove("accelerator");
                KeyStroke stroke = null;
                if (accel instanceof KeyStroke) {
                    stroke = (KeyStroke) accel;
                } else if (accel != null) {
                    stroke = KeyStroke.getKeyStroke(accel.toString());
                }
                action.putValue(Action.ACCELERATOR_KEY, stroke);

                Object mnemonic = attributes.remove("mnemonic");
                if ((mnemonic != null) && !(mnemonic instanceof Number)) {
                    mnemonic = new Integer(mnemonic.toString().charAt(0));
                }
                action.putValue(Action.MNEMONIC_KEY, mnemonic);

                for (Iterator iter = attributes.entrySet().iterator(); iter.hasNext();) {
                    Map.Entry entry = (Map.Entry) iter.next();
                    String actionName = (String) entry.getKey();    // todo dk: misleading naming. this can be any property name

                    // typically standard Action names start with upper case, so lets upper case it            
                    actionName = capitalize(actionName);            // todo dk: in general, this shouldn't be capitalized
                    Object value = entry.getValue();

                    action.putValue(actionName, value);
                }

            }
            else {
                // some special cases...
                if (attributes.containsKey("buttonGroup")) {
                    Object o = attributes.get("buttonGroup");
                    if ((o instanceof ButtonGroup) && (widget instanceof AbstractButton)) {
                        ((AbstractButton)widget).getModel().setGroup((ButtonGroup)o);
                        attributes.remove("buttonGroup");
                    }
                }

                // this next statement nd if/else is a workaround until GROOVY-305 is fixed
                Object mnemonic = attributes.remove("mnemonic");
                if ((mnemonic != null) && (mnemonic instanceof Number)) {
                    InvokerHelper.setProperty(widget, "mnemonic", new Character((char)((Number)mnemonic).intValue()));
                } 
                else if (mnemonic != null) {
                    InvokerHelper.setProperty(widget, "mnemonic", new Character(mnemonic.toString().charAt(0)));
                } 

                // set the properties
                for (Iterator iter = attributes.entrySet().iterator(); iter.hasNext();) {
                    Map.Entry entry = (Map.Entry) iter.next();
                    String property = entry.getKey().toString();
                    Object value = entry.getValue();
                    InvokerHelper.setProperty(widget, property, value);
                }
            }
        }
    }

    protected String capitalize(String text) {
        char ch = text.charAt(0);
        if (Character.isUpperCase(ch)) {
            return text;
        }
        StringBuffer buffer = new StringBuffer(text.length());
        buffer.append(Character.toUpperCase(ch));
        buffer.append(text.substring(1));
        return buffer.toString();
    }

    protected void registerWidgets() {
        //
        // non-widget support classes
        //
        registerBeanFactory("action", DefaultAction.class);
        passThroughNodes.put("action", javax.swing.Action.class);
        registerBeanFactory("buttonGroup", ButtonGroup.class);
        registerFactory("map", new Factory() {      // todo dk: is that still needed?
            public Object newInstance(Map properties)
                throws InstantiationException, InstantiationException, IllegalAccessException {
                return properties;
            }
        });
        // ulimate pass through type
        passThroughNodes.put("widget", java.awt.Component.class);

        //
        // standalone window classes
        //
        registerFactory("dialog", new Factory() {
            public Object newInstance(Map properties)
                throws InstantiationException, InstantiationException, IllegalAccessException {
                return createDialog(properties);
            }
        });
        registerFactory("frame", new Factory() {
            public Object newInstance(Map properties)
                throws InstantiationException, InstantiationException, IllegalAccessException {
                return createFrame(properties);
            }
        });
        registerBeanFactory("fileChooser", JFileChooser.class);
        registerFactory("frame", new Factory() {        // todo dk: frame registered twice ???
            public Object newInstance(Map properties)
                throws InstantiationException, InstantiationException, IllegalAccessException {
                return createFrame(properties);
            }
        });
        registerBeanFactory("optionPane", JOptionPane.class);
        registerFactory("window", new Factory() {
            public Object newInstance(Map properties)
                throws InstantiationException, InstantiationException, IllegalAccessException {
                return createWindow(properties);
            }
        });
        
        //
        // widgets
        //
        registerBeanFactory("button", JButton.class);
        registerBeanFactory("checkBox", JCheckBox.class);
        registerBeanFactory("checkBoxMenuItem", JCheckBoxMenuItem.class);
        registerBeanFactory("colorChooser", JColorChooser.class);
        registerFactory("comboBox", new Factory() {
            public Object newInstance(Map properties)
                throws InstantiationException, InstantiationException, IllegalAccessException {
                return createComboBox(properties);
            }
        });
        registerBeanFactory("desktopPane", JDesktopPane.class);
        registerBeanFactory("editorPane", JEditorPane.class);
        registerFactory("formattedTextField", new Factory() {
            public Object newInstance(Map properties)
                throws InstantiationException, InstantiationException, IllegalAccessException {
                return createFormattedTextField(properties);
            }
        });
        registerBeanFactory("internalFrame", JInternalFrame.class);
        registerBeanFactory("label", JLabel.class);
        registerBeanFactory("layeredPane", JLayeredPane.class);
        registerBeanFactory("list", JList.class);
        registerBeanFactory("menu", JMenu.class);
        registerBeanFactory("menuBar", JMenuBar.class);
        registerBeanFactory("menuItem", JMenuItem.class);
        registerBeanFactory("panel", JPanel.class);
        registerBeanFactory("passwordField", JPasswordField.class);
        registerBeanFactory("popupMenu", JPopupMenu.class);
        registerBeanFactory("progressBar", JProgressBar.class);
        registerBeanFactory("radioButton", JRadioButton.class);
        registerBeanFactory("radioButtonMenuItem", JRadioButtonMenuItem.class);
        registerBeanFactory("scrollBar", JScrollBar.class);
        registerBeanFactory("scrollPane", JScrollPane.class);
        registerBeanFactory("separator", JSeparator.class);
        registerBeanFactory("slider", JSlider.class);
        registerBeanFactory("spinner", JSpinner.class);
        registerFactory("splitPane", new Factory() {
            public Object newInstance(Map properties) {
                JSplitPane answer = new JSplitPane();
                answer.setLeftComponent(null);
                answer.setRightComponent(null);
                answer.setTopComponent(null);
                answer.setBottomComponent(null);
                return answer;
            }
        });
        registerBeanFactory("tabbedPane", JTabbedPane.class);
        registerBeanFactory("table", JTable.class);
        registerBeanFactory("textArea", JTextArea.class);
        registerBeanFactory("textPane", JTextPane.class);
        registerBeanFactory("textField", JTextField.class);
        registerBeanFactory("toggleButton", JToggleButton.class);
        registerBeanFactory("toolBar", JToolBar.class);
        //registerBeanFactory("tooltip", JToolTip.class); // doens't work, user toolTipText property
        registerBeanFactory("tree", JTree.class);
        registerBeanFactory("viewport", JViewport.class); // sub class?

        //
        // MVC models   
        //
        registerBeanFactory("boundedRangeModel", DefaultBoundedRangeModel.class);

        // spinner models
	registerBeanFactory("spinnerDateModel", SpinnerDateModel.class);
        registerBeanFactory("spinnerListModel", SpinnerListModel.class);
        registerBeanFactory("spinnerNumberModel", SpinnerNumberModel.class);

	// table models

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久精品国产在热久久| 91激情在线视频| 色综合天天综合网国产成人综合天 | 亚洲综合偷拍欧美一区色| 日本中文字幕一区二区视频 | 精品播放一区二区| 亚洲午夜一区二区| 成人动漫一区二区在线| 日韩欧美在线不卡| 亚洲成人综合视频| 91丨九色丨黑人外教| 久久久精品欧美丰满| 日本成人中文字幕在线视频 | 亚洲人成网站色在线观看| 久久精品国产精品亚洲红杏| 欧洲精品一区二区三区在线观看| 国产午夜精品福利| 久久成人精品无人区| 欧美久久久久免费| 亚洲一区二区三区影院| 91亚洲国产成人精品一区二三| 久久精品亚洲一区二区三区浴池 | 国产精品美女久久久久久久网站| 精品一二三四区| 日韩三级在线观看| 奇米一区二区三区| 91精品久久久久久蜜臀| 性做久久久久久久免费看| 在线欧美日韩精品| 亚洲国产精品欧美一二99| 色婷婷av一区二区三区之一色屋| 亚洲欧美另类图片小说| 91视频在线观看免费| 成人免费视频在线观看| 91免费国产视频网站| 中文字幕在线不卡视频| 日韩精品一区二区三区中文精品| 五月婷婷综合在线| 91精品欧美一区二区三区综合在 | 欧美日韩成人综合天天影院| 亚洲午夜视频在线| 欧美久久久久久久久中文字幕| 午夜欧美电影在线观看| 91精品国产一区二区三区| 日本欧美大码aⅴ在线播放| 91精品久久久久久久91蜜桃| 裸体一区二区三区| 国产亚洲va综合人人澡精品| www.在线欧美| 亚洲.国产.中文慕字在线| 欧美成人精品高清在线播放| 久久99精品久久久久久国产越南| 久久久久久久性| 91视频国产资源| 日韩高清在线观看| 久久亚洲综合色一区二区三区| 国产成人午夜精品5599| 亚洲女女做受ⅹxx高潮| 欧美电影在线免费观看| 国产美女视频一区| 中文字幕一区免费在线观看| 欧美日韩1区2区| 黄一区二区三区| 亚洲欧美一区二区三区国产精品| 欧美日韩色一区| 欧美影视一区二区三区| 免费高清不卡av| 国产精品美女久久久久久2018| 欧美日韩在线免费视频| 国产美女精品一区二区三区| 一区二区三区在线观看视频| 日韩一级精品视频在线观看| av在线播放不卡| 日本v片在线高清不卡在线观看| 国产亚洲制服色| 欧美日韩精品综合在线| 成人短视频下载| 精品一区二区久久久| 洋洋av久久久久久久一区| 26uuu另类欧美亚洲曰本| 色噜噜狠狠一区二区三区果冻| 久久99国产精品免费网站| 亚洲精品中文字幕在线观看| 久久综合九色综合欧美亚洲| 欧美系列在线观看| 成人免费高清在线| 久久er精品视频| 亚洲国产色一区| 91精品一区二区三区久久久久久| 日韩欧美国产综合| 亚洲一卡二卡三卡四卡无卡久久| xfplay精品久久| 91麻豆精品国产91久久久资源速度 | 亚洲不卡av一区二区三区| 久久午夜电影网| 91麻豆精品91久久久久同性| 色婷婷精品久久二区二区蜜臂av | 久久综合丝袜日本网| 国产亚洲综合在线| 欧美喷潮久久久xxxxx| 91网站在线播放| 国产成人a级片| 精品伊人久久久久7777人| 日本最新不卡在线| 偷拍一区二区三区| 亚洲妇女屁股眼交7| 亚洲一区二区成人在线观看| 亚洲丝袜美腿综合| 中文字幕日本不卡| 亚洲欧美一区二区在线观看| 国产午夜亚洲精品午夜鲁丝片| 精品国一区二区三区| 日韩亚洲欧美一区二区三区| 欧美精品aⅴ在线视频| 欧美日韩免费一区二区三区视频| 91老司机福利 在线| 日本韩国精品一区二区在线观看| 97超碰欧美中文字幕| 色综合天天狠狠| 欧美性猛片xxxx免费看久爱| 欧美日韩一区二区在线视频| 7777精品伊人久久久大香线蕉超级流畅 | 激情综合网最新| 国产精品一区二区你懂的| 国产成人综合亚洲网站| 成人在线视频首页| kk眼镜猥琐国模调教系列一区二区| av成人免费在线| 在线一区二区视频| 欧美喷潮久久久xxxxx| 日韩免费性生活视频播放| 久久蜜桃av一区二区天堂 | 欧美丝袜自拍制服另类| 欧美精品精品一区| 欧美成人官网二区| 国产日韩一级二级三级| 亚洲日本一区二区| 婷婷丁香久久五月婷婷| 精品一区二区日韩| 不卡在线视频中文字幕| 欧美色成人综合| 日韩美女在线视频| 国产精品久久毛片a| 亚洲国产精品麻豆| 久久99精品久久久久久久久久久久| 丁香桃色午夜亚洲一区二区三区| 色悠悠亚洲一区二区| 日韩一区二区三区视频在线| 中文字幕高清不卡| 五月激情六月综合| 粉嫩av亚洲一区二区图片| 欧美亚洲另类激情小说| 亚洲精品一区二区三区香蕉| 亚洲裸体xxx| 久久成人羞羞网站| 99久久伊人网影院| 日韩一区二区三区免费看| 亚洲欧洲日产国码二区| 蜜桃传媒麻豆第一区在线观看| 成人黄色大片在线观看| 在线电影欧美成精品| 国产精品午夜电影| 日本欧美加勒比视频| 99re热视频精品| 久久麻豆一区二区| 亚洲mv在线观看| 9色porny自拍视频一区二区| 日韩欧美中文字幕制服| 亚洲精品国产成人久久av盗摄| 国产一区二区三区精品视频| 欧美婷婷六月丁香综合色| 亚洲不卡在线观看| 99久久综合色| 精品福利视频一区二区三区| 亚洲图片一区二区| av电影一区二区| 国产午夜精品福利| 精品中文字幕一区二区| 欧美日韩你懂的| 亚洲色图在线看| 成人免费黄色在线| 国产肉丝袜一区二区| 久久精品国产色蜜蜜麻豆| 欧美巨大另类极品videosbest| 亚洲六月丁香色婷婷综合久久 | 成人免费观看av| 欧美大度的电影原声| 五月天中文字幕一区二区| 色成人在线视频| 亚洲精品一二三区| 99国产精品久久久久| 国产精品久久看| 成人av电影在线观看| 国产欧美日韩三级| 国产精品系列在线播放| 精品久久五月天| 精品亚洲porn| 久久久久久免费网| 国产成人精品网址| 国产欧美视频一区二区|