demos\blackmajic\skin.js
  1 var bufferedImage=null
  2 var animator=null
  3 var djImage=null
  4 var showEqualizer=true
  5 var imagePainted=false
  6 var equalizer
  7 function setupEqualizer() {
  8   equalizer=widget;
  9   drawEqualizer()
 10 }
 11 function drawEqualizer() {
 12   if(equalizer.showing) {
 13     var x=0;
 14     var y=0
 15     var width=equalizer.width
 16     var height=equalizer.height
 17     var g2=equalizer.getContext("2d");
 18     if(!showEqualizer) {
 19       if(!imagePainted) {
 20         if(djImage==null) {
 21           djImage=new Image("images/disk_jockey128.png")
 22         }
 23         g2.clear()
 24         g2.drawImage(djImage,x+((width-djImage.width)/2),y+((height-djImage.height)/2))
 25         imagePainted=true;
 26       }
 27       return;
 28     }
 29     g2.clear()
 30     var eh=4
 31     var ew=20
 32     x+=6
 33     width-=8
 34     height=height/2
 35     var len=Math.floor(width/ew)
 36     var tlen=Math.floor(height/eh)
 37     var color=java.awt.Color.green
 38     var red=java.awt.Color.red
 39     var yellow=java.awt.Color.yellow
 40     var i,h
 41     if(tlen<1) {
 42       tlen=1;
 43     }
 44     y=y+height
 45     var n,hy;
 46     var th=tlen-Math.floor(tlen/2)
 47     var th2=tlen-Math.floor(tlen/3)
 48     for(i=0;i<len;i++) {
 49       h=sage.randomLong(tlen)
 50       if(h<2) {
 51         h=2;
 52       }
 53       g2.fillStyle=color
 54       hy=0
 55       for(n=0;n<h;n++) {
 56         if(n>th2) {
 57           g2.fillStyle=red
 58         }
 59         else if(n>th) {
 60           g2.fillStyle=yellow
 61         }
 62         g2.fillRect(x, y-hy+2, ew-4,eh-2)
 63         hy+=eh+1
 64       }
 65       x+=ew
 66     }
 67     g2.createReflection(0,height,.2)
 68     setTimeout("drawEqualizer()",300)
 69   }
 70 }
 71 function toggleAnimation(playWidget) {
 72   if(showEqualizer) {
 73     playWidget.icon=playWidget.getIcon("images/play.png")
 74   }
 75   else {
 76     playWidget.icon=playWidget.getIcon("images/pause.png")
 77   }
 78   playWidget.dataComponent.pressedIcon=null
 79   showEqualizer=!showEqualizer
 80   imagePainted=false
 81 
 82   drawEqualizer()
 83 }
 84 function changeSkin(skin) {
 85   switch(String(skin)) {
 86     case 'dark':
 87       sage.updateUIColor(window,'defaultBackground',"#161920")
 88       sage.updateUIColor(window,'foregroundColor',"#818083")
 89       sage.updateUIColor(window,'brightForeground',"foregroundColor+50")
 90       sage.updateUIColor(window,'podHilite',"green")
 91       sage.updateUIColor(window,'linkColor',"#ffffff")
 92 
 93       break;
 94     case 'light':
 95       sage.updateUIColor(window,'defaultBackground',"#d0d0d0")
 96       sage.updateUIColor(window,'foregroundColor',"#222222")
 97       sage.updateUIColor(window,'podHilite',"#D9DFF0")
 98       sage.updateUIColor(window,'linkColor',"#222280")
 99       sage.updateUIColor(window,'brightForeground',"#000000")
100       break;
101     case 'red':
102       sage.updateUIColor(window,'defaultBackground',"#400000")
103       sage.updateUIColor(window,'foregroundColor',"#919093")
104       sage.updateUIColor(window,'brightForeground',"foregroundColor+50")
105       sage.updateUIColor(window,'podHilite',"yellow")
106       sage.updateUIColor(window,'linkColor',"#ffffff")
107       break;
108     case 'blue':
109       sage.updateUIColor(window,'defaultBackground',"#000040")
110       sage.updateUIColor(window,'foregroundColor',"#919093")
111       sage.updateUIColor(window,'brightForeground',"foregroundColor+50")
112       sage.updateUIColor(window,'podHilite',"red")
113       sage.updateUIColor(window,'linkColor',"#ffffff")
114       break;
115     case 'green':
116       sage.updateUIColor(window,'defaultBackground',"#004000")
117       sage.updateUIColor(window,'foregroundColor',"#c1c0c3")
118       sage.updateUIColor(window,'brightForeground',"foregroundColor+50")
119       sage.updateUIColor(window,'podHilite',"yellow")
120       sage.updateUIColor(window,'linkColor',"#ffffff")
121       break
122   }
123   window.update()
124 }
125 var timeFilter=new com.sparseware.util.iFilter() {
126   passes: function(value) {
127     var s=time.value-2
128     if(s<1) {
129       return true
130     }
131     var e=s+4
132     var n=sage.intValue(value)
133     return n>s && n <e
134   }
135 }
136 function filterTable() {
137   songs.filter(2,timeFilter)
138 }
139 
140 /**
141 * Toggles the checkbok on the songs table
142 */
143 function toggleSongsCheckbox(e) {
144   var t=e.source
145   var p=e.point
146   var row=t.rowAtPoint(p)
147   var index=t.columnAtPoint(p)
148   var col=index
149   if(index!=-1) {
150     index=t.convertColumnIndexToModel(index)
151   }
152   if(index==1 && row>-1) {
153     var r=t.getCellRect(row,col,false)
154     r.x+=7
155     r.y+=4
156     r.width=10
157     r.height=11
158     if(r.contains(p)) {
159       var item=widget.getItemAt(row,index)
160       if(item.icon==null) {
161         item.icon=window.getResourceIcon("icon_checkbox")
162       }
163       else {
164         item.icon=null //will use the default
165       }
166       widget.update()
167     }
168   }
169 }
170 function getRotater() {
171   return new com.sparseware.sage.iPaintPrimerFinisher() {
172     prime: function(c, g) {
173       var x = (c.getHeight() - c.getWidth())/2;
174       var y = (c.getWidth() - c.getHeight())/2.0;
175       var at = java.awt.geom.AffineTransform.getTranslateInstance(x, y);
176       at.rotate(java.util.Math.toRadians(10), c.getWidth()/2.0,c.getHeight()/2.0);
177       g.transform=at
178       return g
179     },
180     finish: function(c, g) {
181       g.transform=null
182     },
183   }
184 }
185