Ver código fonte

small UI improvements

Nicolas Petton 10 anos atrás
pai
commit
0580b21db7
6 arquivos alterados com 130 adições e 16 exclusões
  1. 4 1
      resources/helios.css
  2. 4 1
      resources/helios.less
  3. 18 3
      src/Helios-Core.js
  4. 5 1
      src/Helios-Core.st
  5. 75 6
      src/Helios-SUnit.js
  6. 24 4
      src/Helios-SUnit.st

+ 4 - 1
resources/helios.css

@@ -142,7 +142,7 @@ body[id="helios"] .dialog .nav a span.browser {
 }
 body[id="helios"] .navbar-fixed-top a span.sunit,
 body[id="helios"] .dialog .nav a span.sunit {
-  background-image: url('sunit.png');
+  background-image: url('test.png');
 }
 body[id="helios"] .navbar-fixed-top a span.workspace,
 body[id="helios"] .dialog .nav a span.workspace {
@@ -937,3 +937,6 @@ body[id="helios"] .hl_debugger .head h2 {
   margin: 0;
   color: white;
 }
+body[id="helios"] .progress {
+  border-radius: 0;
+}

+ 4 - 1
resources/helios.less

@@ -170,7 +170,7 @@ body[id="helios"] {
 		}
 
 		span.sunit {
-			background-image: url('sunit.png')
+			background-image: url('test.png')
 		}
 
 		span.workspace {
@@ -1082,4 +1082,7 @@ body[id="helios"] {
 		}
 	}
 
+        .progress {
+            border-radius: 0;
+        }
 }

+ 18 - 3
src/Helios-Core.js

@@ -2147,6 +2147,21 @@ referencedClasses: []
 }),
 globals.HLListWidget);
 
+smalltalk.addMethod(
+smalltalk.method({
+selector: "buttonsDivCssClass",
+protocol: 'accessing',
+fn: function (){
+var self=this;
+return "pane_actions form-actions";
+},
+args: [],
+source: "buttonsDivCssClass\x0a\x09^ 'pane_actions form-actions'",
+messageSends: [],
+referencedClasses: []
+}),
+globals.HLListWidget);
+
 smalltalk.addMethod(
 smalltalk.method({
 selector: "cssClassForItem:",
@@ -2472,7 +2487,7 @@ return self._renderListOn_(html);
 }, function($ctx2) {$ctx2.fillBlock({},$ctx1,1)})}));
 $ctx1.sendIdx["with:"]=1;
 $3=_st(html)._div();
-_st($3)._class_("pane_actions form-actions");
+_st($3)._class_(self._buttonsDivCssClass());
 $4=_st($3)._with_((function(){
 return smalltalk.withContext(function($ctx2) {
 return self._renderButtonsOn_(html);
@@ -2480,8 +2495,8 @@ return self._renderButtonsOn_(html);
 self._setupKeyBindings();
 return self}, function($ctx1) {$ctx1.fill(self,"renderContentOn:",{html:html},globals.HLListWidget)})},
 args: ["html"],
-source: "renderContentOn: html\x0a\x09html ul \x0a    \x09class: self listCssClass;\x0a        with: [ self renderListOn: html ].\x0a    html div class: 'pane_actions form-actions'; with: [\x0a      \x09self renderButtonsOn: html ].\x0a        \x0a   self setupKeyBindings",
-messageSends: ["class:", "ul", "listCssClass", "with:", "renderListOn:", "div", "renderButtonsOn:", "setupKeyBindings"],
+source: "renderContentOn: html\x0a\x09html ul \x0a    \x09class: self listCssClass;\x0a        with: [ self renderListOn: html ].\x0a    html div class: self buttonsDivCssClass; with: [\x0a      \x09self renderButtonsOn: html ].\x0a        \x0a   self setupKeyBindings",
+messageSends: ["class:", "ul", "listCssClass", "with:", "renderListOn:", "div", "buttonsDivCssClass", "renderButtonsOn:", "setupKeyBindings"],
 referencedClasses: []
 }),
 globals.HLListWidget);

+ 5 - 1
src/Helios-Core.st

@@ -748,6 +748,10 @@ activeItemCssClass
 	^'active'
 !
 
+buttonsDivCssClass
+	^ 'pane_actions form-actions'
+!
+
 cssClassForItem: anObject
 	^ ''
 !
@@ -891,7 +895,7 @@ renderContentOn: html
 	html ul 
     	class: self listCssClass;
         with: [ self renderListOn: html ].
-    html div class: 'pane_actions form-actions'; with: [
+    html div class: self buttonsDivCssClass; with: [
       	self renderButtonsOn: html ].
         
    self setupKeyBindings

+ 75 - 6
src/Helios-SUnit.js

@@ -1,4 +1,5 @@
-define("helios/Helios-SUnit", ["amber_vm/smalltalk", "amber_vm/nil", "amber_vm/_st", "amber_vm/globals", "helios/Helios-Core"], function(smalltalk,nil,_st, globals){
+define("helios/Helios-SUnit", ["amber/boot", "helios/Helios-Core"], function($boot){
+var smalltalk=$boot.vm,nil=$boot.nil,_st=$boot.asReceiver,globals=$boot.globals;
 smalltalk.addPackage('Helios-SUnit');
 smalltalk.packages["Helios-SUnit"].transport = {"type":"amd","amdNamespace":"helios"};
 
@@ -181,6 +182,21 @@ globals.HLMultiSelectToolListWidget);
 
 smalltalk.addClass('HLSUnitClassesListWidget', globals.HLMultiSelectToolListWidget, [], 'Helios-SUnit');
 globals.HLSUnitClassesListWidget.comment="I display a list of  classes (subclasses of `TestCase`).";
+smalltalk.addMethod(
+smalltalk.method({
+selector: "buttonsDivCssClass",
+protocol: 'accessing',
+fn: function (){
+var self=this;
+return "buttons_bar";
+},
+args: [],
+source: "buttonsDivCssClass\x0a\x09^ 'buttons_bar'",
+messageSends: [],
+referencedClasses: []
+}),
+globals.HLSUnitClassesListWidget);
+
 smalltalk.addMethod(
 smalltalk.method({
 selector: "cssClassForItem:",
@@ -413,6 +429,30 @@ referencedClasses: []
 }),
 globals.HLSUnitClassesListWidget);
 
+smalltalk.addMethod(
+smalltalk.method({
+selector: "renderButtonsOn:",
+protocol: 'rendering',
+fn: function (html){
+var self=this;
+return smalltalk.withContext(function($ctx1) { 
+var $1,$2;
+$1=_st(html)._button();
+_st($1)._class_("button");
+_st($1)._with_("Select all");
+$ctx1.sendIdx["with:"]=1;
+$2=_st($1)._with_((function(){
+return smalltalk.withContext(function($ctx2) {
+return _st(self._model())._selectAllClasses();
+}, function($ctx2) {$ctx2.fillBlock({},$ctx1,1)})}));
+return self}, function($ctx1) {$ctx1.fill(self,"renderButtonsOn:",{html:html},globals.HLSUnitClassesListWidget)})},
+args: ["html"],
+source: "renderButtonsOn: html\x0a\x09html button\x0a\x09\x09class: 'button'; \x0a\x09\x09with: 'Select all';\x0a\x09\x09with: [ self model selectAllClasses ]",
+messageSends: ["class:", "button", "with:", "selectAllClasses", "model"],
+referencedClasses: []
+}),
+globals.HLSUnitClassesListWidget);
+
 smalltalk.addMethod(
 smalltalk.method({
 selector: "renderItemLabel:on:",
@@ -465,6 +505,21 @@ globals.HLSUnitClassesListWidget);
 
 smalltalk.addClass('HLSUnitPackagesListWidget', globals.HLMultiSelectToolListWidget, [], 'Helios-SUnit');
 globals.HLSUnitPackagesListWidget.comment="I display a list of packages for which unit tests are associated (packages containing subclasses of `TestCase`).";
+smalltalk.addMethod(
+smalltalk.method({
+selector: "buttonsDivCssClass",
+protocol: 'accessing',
+fn: function (){
+var self=this;
+return "buttons_bar";
+},
+args: [],
+source: "buttonsDivCssClass\x0a\x09^ 'buttons_bar'",
+messageSends: [],
+referencedClasses: []
+}),
+globals.HLSUnitPackagesListWidget);
+
 smalltalk.addMethod(
 smalltalk.method({
 selector: "cssClassForItem:",
@@ -682,17 +737,31 @@ protocol: 'rendering',
 fn: function (html){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
-var $1,$2;
+var $1,$3,$2,$4,$5;
 $1=_st(html)._button();
+$ctx1.sendIdx["button"]=1;
+_st($1)._class_("button");
+$ctx1.sendIdx["class:"]=1;
 _st($1)._with_("Run Tests");
+$ctx1.sendIdx["with:"]=1;
 $2=_st($1)._onClick_((function(){
 return smalltalk.withContext(function($ctx2) {
-return _st(self._model())._runTests();
+$3=self._model();
+$ctx2.sendIdx["model"]=1;
+return _st($3)._runTests();
 }, function($ctx2) {$ctx2.fillBlock({},$ctx1,1)})}));
+$ctx1.sendIdx["onClick:"]=1;
+$4=_st(html)._button();
+_st($4)._class_("button");
+_st($4)._with_("Select all");
+$5=_st($4)._onClick_((function(){
+return smalltalk.withContext(function($ctx2) {
+return _st(self._model())._selectAllPackages();
+}, function($ctx2) {$ctx2.fillBlock({},$ctx1,2)})}));
 return self}, function($ctx1) {$ctx1.fill(self,"renderButtonsOn:",{html:html},globals.HLSUnitPackagesListWidget)})},
 args: ["html"],
-source: "renderButtonsOn: html\x0a\x09html button\x0a\x09with: 'Run Tests';\x0a\x09onClick: [ self model runTests ]",
-messageSends: ["with:", "button", "onClick:", "runTests", "model"],
+source: "renderButtonsOn: html\x0a\x09html button\x0a\x09\x09class: 'button';\x0a\x09\x09with: 'Run Tests';\x0a\x09\x09onClick: [ self model runTests ].\x0a\x09html button\x0a\x09\x09class: 'button';\x0a\x09\x09with: 'Select all';\x0a\x09\x09onClick: [ self model selectAllPackages ]",
+messageSends: ["class:", "button", "with:", "onClick:", "runTests", "model", "selectAllPackages"],
 referencedClasses: []
 }),
 globals.HLSUnitPackagesListWidget);
@@ -1236,7 +1305,7 @@ return _st(self._selectedPackages())._includes_(_st(each)._package());
 return $1;
 }, function($ctx1) {$ctx1.fill(self,"selectedClasses",{},globals.HLSUnitModel)})},
 args: [],
-source: "selectedClasses\x0a\x09^ (self unfilteredSelectedClasses) select: [:each |\x0a\x09\x09self selectedPackages includes: each package]",
+source: "selectedClasses\x0a\x09^ (self unfilteredSelectedClasses) select: [ :each |\x0a\x09\x09self selectedPackages includes: each package ]",
 messageSends: ["select:", "unfilteredSelectedClasses", "includes:", "selectedPackages", "package"],
 referencedClasses: []
 }),

+ 24 - 4
src/Helios-SUnit.st

@@ -67,6 +67,10 @@ I display a list of  classes (subclasses of `TestCase`).!
 
 !HLSUnitClassesListWidget methodsFor: 'accessing'!
 
+buttonsDivCssClass
+	^ 'buttons_bar'
+!
+
 cssClassForItem: aClass	
 	^ aClass theNonMetaClass heliosClass
 !
@@ -155,6 +159,13 @@ onPackageUnselected: anAnnouncement
 
 !HLSUnitClassesListWidget methodsFor: 'rendering'!
 
+renderButtonsOn: html
+	html button
+		class: 'button'; 
+		with: 'Select all';
+		with: [ self model selectAllClasses ]
+!
+
 renderItemLabel: aClass on: html
 	html with: aClass name
 ! !
@@ -173,6 +184,10 @@ I display a list of packages for which unit tests are associated (packages conta
 
 !HLSUnitPackagesListWidget methodsFor: 'accessing'!
 
+buttonsDivCssClass
+	^ 'buttons_bar'
+!
+
 cssClassForItem: anItem	
 	^ anItem isDirty 
 		ifTrue: [ 'package_dirty' ]
@@ -248,8 +263,13 @@ onPackageUnselected: anAnnouncement
 
 renderButtonsOn: html
 	html button
-	with: 'Run Tests';
-	onClick: [ self model runTests ]
+		class: 'button';
+		with: 'Run Tests';
+		onClick: [ self model runTests ].
+	html button
+		class: 'button';
+		with: 'Select all';
+		onClick: [ self model selectAllPackages ]
 !
 
 renderItemLabel: aPackage on: html
@@ -374,8 +394,8 @@ currentSuite
 !
 
 selectedClasses
-	^ (self unfilteredSelectedClasses) select: [:each |
-		self selectedPackages includes: each package]
+	^ (self unfilteredSelectedClasses) select: [ :each |
+		self selectedPackages includes: each package ]
 !
 
 selectedPackages