Simplify the panel api by having the panel object create the bar element

pull/39/head^2
Ruben Daniels 2015-03-10 01:46:07 +00:00
rodzic 364000ba78
commit bc2af84013
6 zmienionych plików z 42 dodań i 45 usunięć

Wyświetl plik

@ -49,7 +49,7 @@
},
"licenses": [],
"c9plugins": {
"c9.ide.language": "#a6b859c38e",
"c9.ide.language": "#1ec8e1fa35",
"c9.ide.language.css": "#afda1f867c",
"c9.ide.language.generic": "#87a4a44671",
"c9.ide.language.html": "#fa4833e117",
@ -65,7 +65,7 @@
"c9.ide.find": "#989c06e6a7",
"c9.ide.find.infiles": "#f98dfef554",
"c9.ide.find.replace": "#e4daf722b8",
"c9.ide.run.debug": "#df6615768a",
"c9.ide.run.debug": "#cb3d2e8a44",
"c9.ide.ace.emmet": "#e5f1a92ac3",
"c9.ide.ace.gotoline": "#4d1a93172c",
"c9.ide.ace.keymaps": "#6c4bb65b1f",
@ -84,7 +84,7 @@
"c9.ide.immediate": "#e9ba147cc2",
"c9.ide.installer": "#24e7d6f399",
"c9.ide.mount": "#32e79866ee",
"c9.ide.navigate": "#eab638cc2f",
"c9.ide.navigate": "#c2b2a7ba7b",
"c9.ide.newresource": "#9a7464cc47",
"c9.ide.openfiles": "#28a4f5af16",
"c9.ide.preview": "#3c4dded23f",

Wyświetl plik

@ -24,7 +24,6 @@ define(function(require, exports, module) {
var plugin = new Panel("Ajax.org", main.consumes, {
index: options.index || 300,
caption: "Commands",
elementName: "winCommands",
minWidth: 150,
autohide: true,
where: options.where || "left"
@ -69,7 +68,7 @@ define(function(require, exports, module) {
var treeParent = plugin.getElement("commandsList");
txtFilter = plugin.getElement("txtFilter");
winCommands = plugin.getElement("winCommands");
winCommands = options.aml;
// Create the Ace Tree
tree = new Tree(treeParent.$int);

Wyświetl plik

@ -1,7 +1,5 @@
<a:application xmlns:a="http://ajax.org/2005/aml">
<a:bar id="winCommands" skin="panel-bar" visible="false">
<a:codebox id="txtFilter" realtime="true" skin="codebox" clearbutton="true"
focusselect="true" height="27" left="10" top="10" right="10" singleline="true" />
<a:bar id="commandsList" style="position:absolute;top:47px;right:10px;left:10px;bottom:0" class="searchresults" />
</a:bar>
<a:codebox id="txtFilter" realtime="true" skin="codebox" clearbutton="true"
focusselect="true" height="27" left="10" top="10" right="10" singleline="true" />
<a:bar id="commandsList" style="position:absolute;top:47px;right:10px;left:10px;bottom:0" class="searchresults" />
</a:application>

Wyświetl plik

@ -17,19 +17,18 @@ define(function(require, module, exports) {
var uCaseFirst = require("c9/string").uCaseFirst;
function Panel(developer, deps, options) {
// Panel extends ext.Plugin
var plugin = new Plugin(developer, deps);
var emit = plugin.getEmitter();
var autohide = options.autohide || false;
var index = options.index || 100;
var className = options.className;
var buttonCSSClass = options.buttonCSSClass;
var panelCSSClass = options.panelCSSClass;
var caption = options.caption;
var elementName = options.elementName;
var width = options.width;
var minWidth = options.minWidth;
var mnuItem, button, area, lastPanel, xpath, where;
var mnuItem, button, area, lastPanel, xpath, where, aml;
plugin.on("load", function(){
xpath = "state/panels/" + plugin.name;
@ -153,23 +152,27 @@ define(function(require, module, exports) {
if (drawn) return false;
drawn = true;
aml = area.aml.appendChild(new ui.bar({
"skin": "panel-bar",
"class" : panelCSSClass || "",
"visible": false
}));
plugin.addElement(aml);
emit.sticky("draw", {
html: area.container,
aml: area.aml
html: aml.$int,
aml: aml
});
var aml = plugin.getElement(elementName);
if (aml) {
aml.$ext.style.zIndex = 100;
aml.$ext.style.minWidth = ""; //Needed for the anims
aml.$ext.style.position = "absolute";
aml.$ext.style.left = where == "left" ? area.width + "px" : 0;
aml.$ext.style.top = 0;
aml.$ext.style.right = where == "right" ? area.width + "px" : 0;
aml.$ext.style.bottom = 0;
aml.$display = apf.CSSPREFIX + "Flex";
}
aml.$ext.style.zIndex = 100;
aml.$ext.style.minWidth = ""; //Needed for the anims
aml.$ext.style.position = "absolute";
aml.$ext.style.left = where == "left" ? area.width + "px" : 0;
aml.$ext.style.top = 0;
aml.$ext.style.right = where == "right" ? area.width + "px" : 0;
aml.$ext.style.bottom = 0;
aml.$display = apf.CSSPREFIX + "Flex";
return true;
}
@ -178,7 +181,6 @@ define(function(require, module, exports) {
area = toArea;
try {
var aml = plugin.getElement(elementName);
if (aml)
area.aml.appendChild(aml);
} catch (e) {}
@ -203,7 +205,7 @@ define(function(require, module, exports) {
state: true,
caption: caption,
auto: false,
"class" : className || "",
"class" : buttonCSSClass || "",
onmousedown: function(){
panels.areas[where].toggle(plugin.name, autohide, true);
},
@ -312,8 +314,8 @@ define(function(require, module, exports) {
* autohiding panel. The developer is responsible for hiding
* the panel. This behavior will animate the panel during
* @param hide and show over other panels, if there are any.
* @param {String} [options.elementName] Specifies the name of the aml element that renders the panel
* @param {String} [options.className] Specifies the name of the css class that is applied to the panel
* @param {String} [options.buttonCSSClass] Specifies the name of the css class that is applied to the button
* @param {String} [options.panelCSSClass] Specifies the name of the css class that is applied to the panel
* @param {Number} [options.width] Specifies the default width of the panel
* @param {Number} [options.minWidth] Specifies the minimal width of the panel
* @param {String} [options.where] Accepts "left" or "right" to determine where the panel is added
@ -350,7 +352,7 @@ define(function(require, module, exports) {
* @private
* @readonly
*/
get aml(){ return plugin.getElement(elementName); },
get aml(){ return aml; },
/**
* The area that this panel is a part of.

Wyświetl plik

@ -43,7 +43,7 @@ define(function(require, exports, module) {
var plugin = new Panel("Ajax.org", main.consumes, {
index: options.index || 100,
caption: "Workspace",
elementName: "winFilesViewer",
panelCSSClass: "workspace_files",
minWidth: 130,
where: options.where || "left"
});
@ -217,7 +217,7 @@ define(function(require, exports, module) {
// Fetch UI elements
container = plugin.getElement("container");
winFilesViewer = plugin.getElement("winFilesViewer");
winFilesViewer = options.aml
// Create the Ace Tree
tree = new Tree(container.$int);

Wyświetl plik

@ -1,12 +1,10 @@
<a:application xmlns:a="http://ajax.org/2005/aml">
<a:bar id="winFilesViewer" skin="panel-bar" class="workspace_files">
<a:button id="btnTreeSettings"
skin="header-btn"
class="panel-settings" />
<a:menu id="mnuFilesSettings" />
<a:menu id="mnuCtxTree" />
<a:bar id="winOpenfiles" class="openfiles" height="10" visible="false" />
<a:bar id="container" class="filetree real" focussable="true" contextmenu="mnuCtxTree" />
</a:bar>
<a:button id="btnTreeSettings"
skin="header-btn"
class="panel-settings" />
<a:menu id="mnuFilesSettings" />
<a:menu id="mnuCtxTree" />
<a:bar id="winOpenfiles" class="openfiles" height="10" visible="false" />
<a:bar id="container" class="filetree real" focussable="true" contextmenu="mnuCtxTree" />
</a:application>