JavaScript DHTML/Ext JS/Action

Материал из Web эксперт
Перейти к: навигация, поиск

Add action handler to action

  
<!--
/*!
 * Ext JS Library 3.0.0
 * Copyright(c) 2006-2009 Ext JS, LLC
 * licensing@extjs.ru
 * http://www.extjs.ru/license
 */
-->
<html>
<head>
<title>Hello World Window</title>
<link rel="stylesheet" type="text/css" href="ext-3.0.0/resources/css/ext-all.css" />
<script type="text/javascript" src="ext-3.0.0/adapter/ext/ext-base.js"></script>
<script type="text/javascript" src="ext-3.0.0/ext-all.js"></script>
</head>
<!-- Revised from demo code in ext3.0.0 -->
<body>
<script type="text/javascript">
/*!
 * Ext JS Library 3.0.0
 * Copyright(c) 2006-2009 Ext JS, LLC
 * licensing@extjs.ru
 * http://www.extjs.ru/license
 */
Ext.onReady(function(){
    // The action
    var action = new Ext.Action({
        text: "Action 1",
        handler: function(){
            Ext.example.msg("Click","You clicked on "Action 1".");
        },
        iconCls: "blist"
    });

    var panel = new Ext.Panel({
        title: "Actions",
        width:600,
        height:300,
        bodyStyle: "padding:10px;",     // lazy inline style
        tbar: [
            action, {                   // <-- Add the action directly to a toolbar
                text: "Action Menu",
                menu: [action]          // <-- Add the action directly to a menu
            }
        ],
        items: [
           new Ext.Button(action)       // <-- Add the action as a button
        ],
        renderTo: Ext.getBody()
    });
    var tb = panel.getTopToolbar();
    // Buttons added to the toolbar of the Panel above
    // to test/demo doing group operations with an action
    tb.add("->", {
        text: "Disable",
        handler: function(){
            action.setDisabled(!action.isDisabled());
            this.setText(action.isDisabled() ? "Enable" : "Disable");
        }
    }, {
        text: "Change Text",
        handler: function(){
            Ext.Msg.prompt("Enter Text", "Enter new text for Action 1:", function(btn, text){
                if(btn == "ok" && text){
                    action.setText(text);
                    action.setHandler(function(){
                        Ext.example.msg("Click","You clicked on ""+text+"".");
                    });
                }
            });
        }
    }, {
        text: "Change Icon",
        handler: function(){
            action.setIconClass(action.getIconClass() == "blist" ? "bmenu" : "blist");
        }
    });
    tb.doLayout();
});
</script>
        
</script>
</body>
</html>



Add action to form button

  
<!--
/*!
 * Ext JS Library 3.0.0
 * Copyright(c) 2006-2009 Ext JS, LLC
 * licensing@extjs.ru
 * http://www.extjs.ru/license
 */
-->
<html>
<head>
<title>Hello World Window</title>
<link rel="stylesheet" type="text/css" href="ext-3.0.0/resources/css/ext-all.css" />
<script type="text/javascript" src="ext-3.0.0/adapter/ext/ext-base.js"></script>
<script type="text/javascript" src="ext-3.0.0/ext-all.js"></script>
</head>
<!-- Revised from demo code in ext3.0.0 -->
<body>
<script type="text/javascript">
/*!
 * Ext JS Library 3.0.0
 * Copyright(c) 2006-2009 Ext JS, LLC
 * licensing@extjs.ru
 * http://www.extjs.ru/license
 */
Ext.onReady(function(){
    Ext.get("mb1").on("click", function(e){
        Ext.MessageBox.confirm("Confirm", "Are you sure you want to do that?", showResult);
    });
    //Add these values dynamically so they aren"t hard-coded in the html
    Ext.fly("info").dom.value = Ext.MessageBox.INFO;
    Ext.fly("question").dom.value = Ext.MessageBox.QUESTION;
    Ext.fly("warning").dom.value = Ext.MessageBox.WARNING;
    Ext.fly("error").dom.value = Ext.MessageBox.ERROR;

    function showResult(btn){
        Ext.example.msg("Button Click", "You clicked the {0} button", btn);
    };
    function showResultText(btn, text){
        Ext.example.msg("Button Click", "You clicked the {0} button and entered the text "{1}".", btn, text);
    };
});
</script>
<p>
    <b>Confirm</b><br />
    Standard Yes/No dialog.
    <button id="mb1">Show</button>
</p>
</body>
</html>



Change action text

  
<!--
/*!
 * Ext JS Library 3.0.0
 * Copyright(c) 2006-2009 Ext JS, LLC
 * licensing@extjs.ru
 * http://www.extjs.ru/license
 */
-->
<html>
<head>
<title>Hello World Window</title>
<link rel="stylesheet" type="text/css" href="ext-3.0.0/resources/css/ext-all.css" />
<script type="text/javascript" src="ext-3.0.0/adapter/ext/ext-base.js"></script>
<script type="text/javascript" src="ext-3.0.0/ext-all.js"></script>
</head>
<!-- Revised from demo code in ext3.0.0 -->
<body>
<script type="text/javascript">
/*!
 * Ext JS Library 3.0.0
 * Copyright(c) 2006-2009 Ext JS, LLC
 * licensing@extjs.ru
 * http://www.extjs.ru/license
 */
Ext.onReady(function(){
    // The action
    var action = new Ext.Action({
        text: "Action 1",
        handler: function(){
            Ext.example.msg("Click","You clicked on "Action 1".");
        },
        iconCls: "blist"
    });

    var panel = new Ext.Panel({
        title: "Actions",
        width:600,
        height:300,
        bodyStyle: "padding:10px;",     // lazy inline style
        tbar: [
            action, {                   // <-- Add the action directly to a toolbar
                text: "Action Menu",
                menu: [action]          // <-- Add the action directly to a menu
            }
        ],
        items: [
           new Ext.Button(action)       // <-- Add the action as a button
        ],
        renderTo: Ext.getBody()
    });
    var tb = panel.getTopToolbar();
    // Buttons added to the toolbar of the Panel above
    // to test/demo doing group operations with an action
    tb.add("->", {
        text: "Disable",
        handler: function(){
            action.setDisabled(!action.isDisabled());
            this.setText(action.isDisabled() ? "Enable" : "Disable");
        }
    }, {
        text: "Change Text",
        handler: function(){
            Ext.Msg.prompt("Enter Text", "Enter new text for Action 1:", function(btn, text){
                if(btn == "ok" && text){
                    action.setText(text);
                    action.setHandler(function(){
                        Ext.example.msg("Click","You clicked on ""+text+"".");
                    });
                }
            });
        }
    }, {
        text: "Change Icon",
        handler: function(){
            action.setIconClass(action.getIconClass() == "blist" ? "bmenu" : "blist");
        }
    });
    tb.doLayout();
});
</script>
        
</script>
</body>
</html>



Create Ext.Action

  
<!--
/*!
 * Ext JS Library 3.0.0
 * Copyright(c) 2006-2009 Ext JS, LLC
 * licensing@extjs.ru
 * http://www.extjs.ru/license
 */
-->
<html>
<head>
<title>Hello World Window</title>
<link rel="stylesheet" type="text/css" href="ext-3.0.0/resources/css/ext-all.css" />
<script type="text/javascript" src="ext-3.0.0/adapter/ext/ext-base.js"></script>
<script type="text/javascript" src="ext-3.0.0/ext-all.js"></script>
</head>
<!-- Revised from demo code in ext3.0.0 -->
<body>
<script type="text/javascript">
/*!
 * Ext JS Library 3.0.0
 * Copyright(c) 2006-2009 Ext JS, LLC
 * licensing@extjs.ru
 * http://www.extjs.ru/license
 */
Ext.onReady(function(){
    // The action
    var action = new Ext.Action({
        text: "Action 1",
        handler: function(){
            Ext.example.msg("Click","You clicked on "Action 1".");
        },
        iconCls: "blist"
    });

    var panel = new Ext.Panel({
        title: "Actions",
        width:600,
        height:300,
        bodyStyle: "padding:10px;",     // lazy inline style
        tbar: [
            action, {                   // <-- Add the action directly to a toolbar
                text: "Action Menu",
                menu: [action]          // <-- Add the action directly to a menu
            }
        ],
        items: [
           new Ext.Button(action)       // <-- Add the action as a button
        ],
        renderTo: Ext.getBody()
    });
    var tb = panel.getTopToolbar();
    // Buttons added to the toolbar of the Panel above
    // to test/demo doing group operations with an action
    tb.add("->", {
        text: "Disable",
        handler: function(){
            action.setDisabled(!action.isDisabled());
            this.setText(action.isDisabled() ? "Enable" : "Disable");
        }
    }, {
        text: "Change Text",
        handler: function(){
            Ext.Msg.prompt("Enter Text", "Enter new text for Action 1:", function(btn, text){
                if(btn == "ok" && text){
                    action.setText(text);
                    action.setHandler(function(){
                        Ext.example.msg("Click","You clicked on ""+text+"".");
                    });
                }
            });
        }
    }, {
        text: "Change Icon",
        handler: function(){
            action.setIconClass(action.getIconClass() == "blist" ? "bmenu" : "blist");
        }
    });
    tb.doLayout();
});
</script>
        
</script>
</body>
</html>



Disable action to disable a button

  
<!--
/*!
 * Ext JS Library 3.0.0
 * Copyright(c) 2006-2009 Ext JS, LLC
 * licensing@extjs.ru
 * http://www.extjs.ru/license
 */
-->
<html>
<head>
<title>Hello World Window</title>
<link rel="stylesheet" type="text/css" href="ext-3.0.0/resources/css/ext-all.css" />
<script type="text/javascript" src="ext-3.0.0/adapter/ext/ext-base.js"></script>
<script type="text/javascript" src="ext-3.0.0/ext-all.js"></script>
</head>
<!-- Revised from demo code in ext3.0.0 -->
<body>
<script type="text/javascript">
/*!
 * Ext JS Library 3.0.0
 * Copyright(c) 2006-2009 Ext JS, LLC
 * licensing@extjs.ru
 * http://www.extjs.ru/license
 */
Ext.onReady(function(){
    // The action
    var action = new Ext.Action({
        text: "Action 1",
        handler: function(){
            Ext.example.msg("Click","You clicked on "Action 1".");
        },
        iconCls: "blist"
    });

    var panel = new Ext.Panel({
        title: "Actions",
        width:600,
        height:300,
        bodyStyle: "padding:10px;",     // lazy inline style
        tbar: [
            action, {                   // <-- Add the action directly to a toolbar
                text: "Action Menu",
                menu: [action]          // <-- Add the action directly to a menu
            }
        ],
        items: [
           new Ext.Button(action)       // <-- Add the action as a button
        ],
        renderTo: Ext.getBody()
    });
    var tb = panel.getTopToolbar();
    // Buttons added to the toolbar of the Panel above
    // to test/demo doing group operations with an action
    tb.add("->", {
        text: "Disable",
        handler: function(){
            action.setDisabled(!action.isDisabled());
            this.setText(action.isDisabled() ? "Enable" : "Disable");
        }
    }, {
        text: "Change Text",
        handler: function(){
            Ext.Msg.prompt("Enter Text", "Enter new text for Action 1:", function(btn, text){
                if(btn == "ok" && text){
                    action.setText(text);
                    action.setHandler(function(){
                        Ext.example.msg("Click","You clicked on ""+text+"".");
                    });
                }
            });
        }
    }, {
        text: "Change Icon",
        handler: function(){
            action.setIconClass(action.getIconClass() == "blist" ? "bmenu" : "blist");
        }
    });
    tb.doLayout();
});
</script>
        
</script>
</body>
</html>



Update action icon

  
<!--
/*!
 * Ext JS Library 3.0.0
 * Copyright(c) 2006-2009 Ext JS, LLC
 * licensing@extjs.ru
 * http://www.extjs.ru/license
 */
-->
<html>
<head>
<title>Hello World Window</title>
<link rel="stylesheet" type="text/css" href="ext-3.0.0/resources/css/ext-all.css" />
<script type="text/javascript" src="ext-3.0.0/adapter/ext/ext-base.js"></script>
<script type="text/javascript" src="ext-3.0.0/ext-all.js"></script>
</head>
<!-- Revised from demo code in ext3.0.0 -->
<body>
<script type="text/javascript">
/*!
 * Ext JS Library 3.0.0
 * Copyright(c) 2006-2009 Ext JS, LLC
 * licensing@extjs.ru
 * http://www.extjs.ru/license
 */
Ext.onReady(function(){
    // The action
    var action = new Ext.Action({
        text: "Action 1",
        handler: function(){
            Ext.example.msg("Click","You clicked on "Action 1".");
        },
        iconCls: "blist"
    });

    var panel = new Ext.Panel({
        title: "Actions",
        width:600,
        height:300,
        bodyStyle: "padding:10px;",     // lazy inline style
        tbar: [
            action, {                   // <-- Add the action directly to a toolbar
                text: "Action Menu",
                menu: [action]          // <-- Add the action directly to a menu
            }
        ],
        items: [
           new Ext.Button(action)       // <-- Add the action as a button
        ],
        renderTo: Ext.getBody()
    });
    var tb = panel.getTopToolbar();
    // Buttons added to the toolbar of the Panel above
    // to test/demo doing group operations with an action
    tb.add("->", {
        text: "Disable",
        handler: function(){
            action.setDisabled(!action.isDisabled());
            this.setText(action.isDisabled() ? "Enable" : "Disable");
        }
    }, {
        text: "Change Text",
        handler: function(){
            Ext.Msg.prompt("Enter Text", "Enter new text for Action 1:", function(btn, text){
                if(btn == "ok" && text){
                    action.setText(text);
                    action.setHandler(function(){
                        Ext.example.msg("Click","You clicked on ""+text+"".");
                    });
                }
            });
        }
    }, {
        text: "Change Icon",
        handler: function(){
            action.setIconClass(action.getIconClass() == "blist" ? "bmenu" : "blist");
        }
    });
    tb.doLayout();
});
</script>
        
</script>
</body>
</html>



Use action to construct UI controls

  
<html>
<head>
<title>Hello World Window</title>
<link rel="stylesheet" type="text/css" href="ext-3.0.0/resources/css/ext-all.css" />
<script type="text/javascript" src="ext-3.0.0/adapter/ext/ext-base.js"></script>
<script type="text/javascript" src="ext-3.0.0/ext-all.js"></script>
</head>
<script type="text/javascript">
Ext.onReady(function() {
    var genericHandler = function(menuItem) {
        Ext.MessageBox.alert("", "Your choice is " + menuItem.text);
    }
    
    var pasteAction = new Ext.Action({
        text    : "Paste",
        iconCls : "paste",
        handler : genericHandler
    });
    
    var editMenuBtn = {
        text : "Edit",
        menu : [
            pasteAction
        ]
    }
    
    new Ext.Window({
        width        : 300,
        height       : 200,
        tbar         : [
            editMenuBtn,
            "->",
            pasteAction
        ]
    }).show();
});

</script>
<body>

</body>
</html>