// add to tabs list
synchronized (dtabs) {
// make dtabs and dtabsControllers access synchronized
dtabs.add(dt);
dtabsLinkNames.add(Integer.toString(dtabCreateCounter));
Link link = LinkFactory.createCustomLink("a" + dtabCreateCounter, "a" + dtabCreateCounter, "", Link.NONTRANSLATED, navVc, this);
link.setCustomDisplayText(((DTabImpl) dt).getNavElement().getTitle());
link.setTitle(dt.getTitle());
link.setUserObject(dt);
// Set accessibility access key. Only 9 tabs can be created. All tabs
// opened after that will have no access keys
if (dtabCreateCounter < 9) {
link.setAccessKey(dtabCreateCounter + 1 + "");
}
// add close links
Link calink = LinkFactory.createCustomLink("ca" + dtabCreateCounter, "ca" + dtabCreateCounter, "", Link.NONTRANSLATED, navVc, this);
calink.setCustomEnabledLinkCSS("b_nav_tab_close");
calink.setTitle(translate("close"));
calink.setTooltip(translate("close"), false);
calink.setUserObject(dt);
Link cplink = LinkFactory.createCustomLink("cp" + dtabCreateCounter, "cp" + dtabCreateCounter, "", Link.NONTRANSLATED, navVc, this);
cplink.setCustomEnabledLinkCSS("b_nav_tab_close");
cplink.setTitle(translate("close"));
cplink.setTooltip(translate("close"), false);
cplink.setUserObject(dt);
Controller dtabCtr = ((DTabImpl) dt).getController();
dtabCtr.addControllerListener(this);
// add to tabs controller lookup table for later event dispatching
dtabsControllers.add(dtabCtr);