Tab Manager 2 : Tab : GUI Components JAVASCRIPT DHTML TUTORIALS


JAVASCRIPT DHTML TUTORIALS » GUI Components » Tab »

 

Tab Manager 2




<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<title>DynAPI Examples - Tab Manager 2</title>
<script language="Javascript" src="./dynapisrc/dynapi.js"></script>
<script language="Javascript">
dynapi.library.setPath('./dynapisrc/');
dynapi.library.include('dynapi.api');
dynapi.library.include('dynapi.functions');
dynapi.library.include('dynapi.util.DataSource');
dynapi.library.include('dynapi.gui.FocusManager');
dynapi.library.include('dynapi.api.ext.TabManager');
</script>
<style type="text/css">
td font:10px Helvetica; background:#dddddd; }
.center text-align:center; }
</style>
<script language="Javascript">
// data source error function
function dsConfirm(ds,err) {
  var elm,t,c;
  elm=ds.ioelement.getScope();
  // IE only - used to display page content of a failed response.
  if(!(dynapi.ua.ie && elm.document && !elm.document._tranState)) t='';
  else t='------n'+elm.document.body.innerText;
  c=confirm(err+'nnWould you like to retry the operation?nn'+t);
  if(cds.retry();
};
// data source listener
var dsListener={};
dsListener.onalert=function(e,err) {
  var ds=e.getSource();
  if(err.indexOf('DataSource: Server Timeout')>=0dsConfirm(ds,err);
};
// data source callback
function dsConnect(ds,s,err) {
  if(s!=truedsConfirm(ds,err);
  else ds.moveFirst();
};
// tab manager listener
var tmListener={
  onblur:function(e) {
    var o=e.getSource();
    o.setBgColor('#cccccc');
  },
  onfocus:function(e) {
    var o=e.getSource();
    o.setBgColor('#aaaaaa');
  },
  onsubmit:function(e) {
    var o=e.getSource();
    o.setBgColor('#eeeeee');
    o.callSubmitFn();
  }
}
// default tab attributes
function Tab(html,x,id) {
  this.base=DynLayer;
  this.base(html,x,1,50,16,'#cccccc');
  this.setClass('center');
  if(idthis.setID(id)
}
Tab.prototype=new DynLayer();
// example 1
var e1=dynapi.document.addChild(new DynLayer(null,0,0,309,48));
// menubar 1
var m1=e1.addChild(new DynLayer(null,1,1,309,19,'#666666'));
m1.addChild(new Tab('&lt;&lt; First',1),'tab1').addSubmitFn('ds1.moveFirst()');
m1.addChild(new Tab('&lt; Prev',52),'tab2').addSubmitFn('ds1.movePrev()');
m1.addChild(new Tab('Add',103))// tab 3
m1.addChild(new Tab('Submit',154))// tab 4
m1.addChild(new Tab('Next &gt;',205),'tab5').addSubmitFn('ds1.moveNext()');
m1.addChild(new Tab('Last &gt;&gt;',256),'tab6').addSubmitFn('ds1.moveLast()');
m1.createTabManager(m1.tab1,m1.tab2,m1.tab5,m1.tab6)// exclude tab3 & tab4
m1.addTabListeners(tmListener)
m1.tab1.onCreate(function() { this.setFocus(true)} );
// data source 1
var ds1=new DataSource();
ds1.setSource('dynapi.util.datasource-testfile.html','GET');
ds1.connect(dsConnect);
ds1.addEventListener(dsListener);
e1.addChild(new DynLayer(null,1,21,17,25,'#cccccc'),'dri').setDataSource(ds1,'dataRowIndex');
e1.addChild(new DynLayer(null,20,21,80,25,'#cccccc')).setDataSource(ds1,'user_id');
e1.addChild(new DynLayer(null,102,21,205,25,'#cccccc')).setDataSource(ds1,'full_name');
e1.dri._setDSValue=function(d) { this.setHTML((d+1)+'')}
// example 2
var e2=dynapi.document.addChild(new DynLayer(null,0,0,410,48));
// menubar 2
var m2=e2.addChild(new DynLayer(null,0,0,410,19,'#666666'));
m2.addChild(new Tab('&lt;&lt; First',1,'ds2-moveFirst'),'t1');
m2.addChild(new Tab('&lt;&lt; -10',52),'t2');
m2.addChild(new Tab('&lt; Prev',103,'ds2-movePrev'),'t3');
m2.addChild(new Tab('Add',154));
m2.addChild(new Tab('Submit',205));
m2.addChild(new Tab('Next &gt;',256,'ds2-moveNext'),'t4');
m2.addChild(new Tab('+1&gt;&gt;',307),'t5');
m2.addChild(new Tab('Last &gt;&gt;',358,'ds2-moveLast'),'t6');
m2.t2.addSubmitFn(function() { ds2.setRecordPosition(I2-10)});
m2.t5.addSubmitFn(function() { ds2.setRecordPosition(I2+10)});
// m2 tab elements t1,t3,t4,t6 will have id callbacks, '-' replaced with '.' ;)
m2.createTabManager(m2.t1,m2.t2,m2.t3,m2.t4,m2.t5,m2.t6);
m2.addTabListeners(tmListener)
// data source 2
var ds2=new DataSource(),I2=0;
ds2.setSource('dynapi.util.datasource-acronyms.html','GET');
ds2.connect(dsConnect);
ds2.addEventListener(dsListener);
e2.addChild(new DynLayer(null,1,21,17,25,'#cccccc'),'dri').setDataSource(ds2,'dataRowIndex');
e2.addChild(new DynLayer(null,20,21,80,25,'#cccccc')).setDataSource(ds2,'mnemonic');
e2.addChild(new DynLayer(null,102,21,307,25,'#cccccc')).setDataSource(ds2,'description');
e2.dri._setDSValue=function(d) { I2=parseInt(d)this.setHTML((I2+1)+'')}
// example 3
// tab manager and focus manager listener
var fmListener={
  onfocus:function(e) {
    var o=e.getSource();
    o.__oldBg=o.getBgColor();
    o.setBgColor('#999999');
  },
  onblur:function(e) {
    var o=e.getSource();
    o.setBgColor(o.__oldBg);
  },
  onsubmit:function(e) { // tab manager
    var o=e.getSource();
    o.setBgColor('#eeeeee');
  }
}
// default box attributes
function Box(x,y,c) {
  this.base=DynLayer;
  this.base(null,x,y,50,50,c);
  this.setFocus('auto')
  this.setClass('center');
}
Box.prototype=new DynLayer();
var e3=dynapi.document.addChild(new DynLayer(null,0,0,410,75));
e3.addChild(new Box(0,0,'#cccccc'));
e3.addChild(new Box(80,0,'#cccccc'));
e3.addChild(new Box(160,0,'#cccccc'));
e3.addChild(new Box(240,0,'#cccccc'));
e3.addChild(new Box(320,0,'#cccccc'));
e3.addChild(new Box(360,25,'#bbbbbb'));
e3.addChild(new Box(280,25,'#bbbbbb'));
e3.addChild(new Box(200,25,'#bbbbbb'));
e3.addChild(new Box(120,25,'#bbbbbb'));
e3.addChild(new Box(40,25,'#bbbbbb'));
e3.createTabManager()// all children
e3.addTabListeners(fmListener);
// hidden information
var e4=dynapi.document.addChild(new DynLayer(null,null,null,380,150));
FORM=null;
function getForm() {
  if(FORMreturn;
  FORM=TabManager.getForm(e4);
  var html4='When using the [Tabkey in Mozilla this text field prevents default tab focus. It may be <a href="" onclick="FORM.setVisible(false);return false;">hidden</a> (unfortunately the cursor is still visible).<br>When using NS4 on Linux with broken key events make sure this text field is <a href="" onclick="FORM.setVisible(true);return false;">visible</a> and click in the field to force focus and allow key input.'
  e4.addChild(new DynLayer(html4,30,0,350,100));
}
</script>
</head>
<body bgcolor="#eeeeee">
<table border=cellspacing=cellpadding=4>
<tr><td colspan=align="center">Tab Manager Demonstration 2</td></tr>
<tr>
<td valign="top">
<p>Names Datasource<br>
<script>dynapi.document.insertChild(e1,'relative');</script>
<p>Acronyms Datasource<br>
<script>dynapi.document.insertChild(e2,'relative');</script>
<p>Tab Manager and Focus Manager<br>
<script>dynapi.document.insertChild(e3,'relative');</script>
</td>
<td valign="top"><ol>
<li>In NS4 click in the window and use the numeric keypad (Num Lockarrow keys to tab around the menus and the space key to select.
<li>For other browsers use the numeric keypad or standard arrow keys to tab around the menus and the enter or space key to select.
<li>On some browsers it is possible to use the [SHIFT+Taband [Tabkeys to move left and right repectively. Use up and down arrow keys to move between the menus as before.
<li>To prevent default tab focus when using the [Tabkey in Mozilla or when trying to use NS4 on Linux with broken key events, click <a href="" onclick="getForm();return false;">here</a>.</ol>
<script>dynapi.document.insertChild(e4,'relative');</script>
</td>
</tr>
</table>
</body>
</html>

           
       

Download : Download nav_dynapi.zip nav_dynapi.zip


-

Leave a Comment / Note


 
Verification is used to prevent unwanted posts (spam). .

Follow Navioo On Twitter

JAVASCRIPT DHTML TUTORIALS

 Navioo GUI Components
» Tab