UNPKG

accessibility-developer-tools

Version:

This is a library of accessibility-related testing and utility code.

167 lines (153 loc) 6.35 kB
<!DOCTYPE html> <html> <!-- Copyright 2010 The Closure Library Authors. All Rights Reserved. Use of this source code is governed by the Apache License, Version 2.0. See the COPYING file for details. --> <head> <title> goog.ui.Css3ButtonRenderer Demo </title> <script type="text/javascript" src="../base.js"></script> <script type="text/javascript"> goog.require('goog.array'); goog.require('goog.debug.DivConsole'); goog.require('goog.debug.LogManager'); goog.require('goog.events'); goog.require('goog.log'); goog.require('goog.object'); goog.require('goog.ui.Css3ButtonRenderer'); goog.require('goog.ui.CustomButton'); goog.require('goog.ui.ToggleButton'); goog.require('goog.ui.decorate'); </script> <link rel="stylesheet" type="text/css" href="css/demo.css"> <link rel="stylesheet" type="text/css" href="../css/common.css"> <link rel="stylesheet" type="text/css" href="../css/css3button.css"> </head> <body> <h2>Demo of goog.ui.Css3ButtonRenderer</h2> <fieldset> <legend> These buttons were rendered using <strong>goog.ui.Css3ButtonRenderer</strong>: </legend> <br/> These buttons were created programmatically:<br/> <div id="cb1"></div> <br/> These buttons were created by decorating some DIVs, and they dispatch state transition events (watch the event log):<br/> <div id="cb2"> <div id="foo" class="goog-css3-button" title="Title specified in HTML"> Decorated <b>Button</b>, yay! </div><div id="bar" class="goog-css3-button goog-css3-button-disabled" title="Initialized to DISABLED in HTML...">Decorated Disabled </div><div id="fee" class="goog-css3-button">Another Button</div><div id="btn1" class="goog-css3-button goog-css3-button-collapse-right"> Archive </div><div id="btn2" class="goog-css3-button goog-css3-button-collapse-right goog-css3-button-collapse-left"> Delete </div><div id="btn3" class="goog-css3-button goog-css3-button-collapse-left"> Report Spam </div> </div> <br/> Use these <strong>ToggleButton</strong>s to hide/show and enable/disable the middle button:<br/> <div id="toggleEnable" class="goog-css3-toggle-button" title="Click here to enable/disable the button above">Enable</div> <div id="hideShow" class="goog-css3-toggle-button goog-css3-button-checked" title="Click here to hide/show the button above">Show</div> <br/><br/> Combined toggle buttons<br/> <div id="btn4" class="goog-css3-toggle-button goog-css3-button-collapse-right"> Bold </div><div id="btn5" class="goog-css3-toggle-button goog-css3-button-collapse-right goog-css3-button-collapse-left"> Italics </div><div id="btn6" class="goog-css3-toggle-button goog-css3-button-collapse-left goog-css3-button-checked"> Underlined </div> </fieldset> <br/> <div id="perf"></div> <!-- Event log. --> <fieldset class="goog-debug-panel"> <legend>Event Log</legend> <div id="log"></div> </fieldset> <script type="text/javascript"> var timer = goog.now(); // Set up a logger. goog.debug.LogManager.getRoot().setLevel(goog.log.Level.ALL); var logger = goog.log.getLogger('demo'); var logconsole = new goog.debug.DivConsole(goog.dom.getElement('log')); logconsole.setCapturing(true); var EVENTS = goog.object.getValues(goog.ui.Component.EventType); goog.log.fine(logger, 'Listening for: ' + EVENTS.join(', ') + '.'); function logEvent(e) { goog.log.info(logger, '"' + e.target.getCaption() + '" dispatched: ' + e.type); } // Create some buttons using CustomButton with the // Css3ButtonRenderer renderer. var disabledButton; var customButtons = [ new goog.ui.CustomButton('Button', goog.ui.Css3ButtonRenderer.getInstance()), new goog.ui.CustomButton('Another Button', goog.ui.Css3ButtonRenderer.getInstance()), disabledButton = new goog.ui.CustomButton('Disabled Button', goog.ui.Css3ButtonRenderer.getInstance()), new goog.ui.CustomButton('Yet Another Button', goog.ui.Css3ButtonRenderer.getInstance()) ]; disabledButton.setEnabled(false); goog.array.forEach(customButtons, function(b) { b.render(goog.dom.getElement('cb1')); goog.events.listen(b, goog.ui.Component.EventType.ACTION, function(e) { var newCaption = window.prompt('Enter new caption for button:'); b.setCaption(newCaption || 'Empty'); }); goog.events.listen(b, EVENTS, logEvent); }); // Decorate some buttons. var cb2 = []; var decoratedButtons = goog.array.map([ 'foo', 'bar', 'fee', 'btn1', 'btn2', 'btn3', 'btn4', 'btn5', 'btn6' ], goog.dom.getElement); goog.array.forEach(decoratedButtons, function(element) { // Since the elements to be decorated each have the correct "marker" CSS // class ("goog-css3-custom-button"), we can use the renderer // registry to get the appropriate control instance to decorate them. var button = goog.ui.decorate(element); button.setDispatchTransitionEvents(goog.ui.Component.State.ALL, true); cb2.push(button); goog.events.listen(button, EVENTS, logEvent); }); // Decorate toggle buttons. var toggleEnableElem = goog.dom.getElement('toggleEnable'); var toggleEnable = goog.ui.decorate(toggleEnableElem); toggleEnable.setDispatchTransitionEvents(goog.ui.Component.State.ALL, true); goog.events.listen(toggleEnable, EVENTS, logEvent); goog.events.listen(toggleEnable, goog.ui.Component.EventType.ACTION, function(e) { cb2[1].setEnabled(e.target.isChecked()); }); var hideShowElem = goog.dom.getElement('hideShow'); var hideShow = new goog.ui.decorate(hideShowElem); hideShow.setDispatchTransitionEvents(goog.ui.Component.State.ALL, true); goog.events.listen(hideShow, EVENTS, logEvent); goog.events.listen(hideShow, goog.ui.Component.EventType.ACTION, function(e) { cb2[1].setVisible(e.target.isChecked()); }); goog.dom.setTextContent(goog.dom.getElement('perf'), (goog.now() - timer) +'ms'); </script> </body> </html>