- start add text to whiteboard
This commit is contained in:
parent
71cc44eac2
commit
2ba634e797
@ -78,7 +78,7 @@ package org.bigbluebutton.modules.whiteboard
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
LogUtil.error("SEGMENT LENGTH = [" + segment.length + "] STATUS = [" + dobj.status + "]");
|
// LogUtil.error("SEGMENT LENGTH = [" + segment.length + "] STATUS = [" + dobj.status + "]");
|
||||||
|
|
||||||
if (this.shapeStyle == DrawObject.PENCIL) {
|
if (this.shapeStyle == DrawObject.PENCIL) {
|
||||||
dobj.status = DrawObject.DRAW_END;
|
dobj.status = DrawObject.DRAW_END;
|
||||||
|
@ -18,7 +18,7 @@
|
|||||||
*/
|
*/
|
||||||
package org.bigbluebutton.modules.whiteboard.business.shapes
|
package org.bigbluebutton.modules.whiteboard.business.shapes
|
||||||
{
|
{
|
||||||
import flash.display.Shape;
|
import flash.display.Sprite;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* The DrawObject class provides an interface for other geometric representations.
|
* The DrawObject class provides an interface for other geometric representations.
|
||||||
@ -34,6 +34,7 @@ package org.bigbluebutton.modules.whiteboard.business.shapes
|
|||||||
public static const PENCIL:String = "pencil";
|
public static const PENCIL:String = "pencil";
|
||||||
public static const RECTANGLE:String = "rectangle";
|
public static const RECTANGLE:String = "rectangle";
|
||||||
public static const ELLIPSE:String = "ellipse";
|
public static const ELLIPSE:String = "ellipse";
|
||||||
|
public static const TEXT:String = "text";
|
||||||
|
|
||||||
protected var type:String;
|
protected var type:String;
|
||||||
protected var shape:Array;
|
protected var shape:Array;
|
||||||
@ -54,7 +55,7 @@ package org.bigbluebutton.modules.whiteboard.business.shapes
|
|||||||
public static const DRAW_START:String = "DRAW_START";
|
public static const DRAW_START:String = "DRAW_START";
|
||||||
public var status:String = DRAW_START;
|
public var status:String = DRAW_START;
|
||||||
|
|
||||||
protected var _shape:Shape = new Shape();
|
protected var _shape:Sprite = new Sprite();
|
||||||
protected var _segment:Array;
|
protected var _segment:Array;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -69,7 +70,7 @@ package org.bigbluebutton.modules.whiteboard.business.shapes
|
|||||||
this.optimize();
|
this.optimize();
|
||||||
}
|
}
|
||||||
|
|
||||||
public function getShape():Shape {
|
public function getShape():Sprite {
|
||||||
return _shape;
|
return _shape;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -53,7 +53,12 @@ package org.bigbluebutton.modules.whiteboard.business.shapes
|
|||||||
d = makeRectangle(shape, color, thickness);
|
d = makeRectangle(shape, color, thickness);
|
||||||
} else if (type == DrawObject.ELLIPSE){
|
} else if (type == DrawObject.ELLIPSE){
|
||||||
d = makeEllipse(shape, color, thickness);
|
d = makeEllipse(shape, color, thickness);
|
||||||
}
|
} else if (type == DrawObject.TEXT){
|
||||||
|
d = makeText(shape, color, thickness);
|
||||||
|
d.getShapeArray().push(d.getShape().width);
|
||||||
|
d.getShapeArray().push(d.getShape().height);
|
||||||
|
}
|
||||||
|
|
||||||
return d;
|
return d;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -69,6 +74,7 @@ package org.bigbluebutton.modules.whiteboard.business.shapes
|
|||||||
*/
|
*/
|
||||||
public function makePencil(shape:Array, color:uint, thickness:uint):DrawObject{
|
public function makePencil(shape:Array, color:uint, thickness:uint):DrawObject{
|
||||||
return new Pencil(shape, color, thickness);
|
return new Pencil(shape, color, thickness);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -82,7 +88,8 @@ package org.bigbluebutton.modules.whiteboard.business.shapes
|
|||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
public function makeRectangle(shape:Array, color:uint, thickness:uint):DrawObject{
|
public function makeRectangle(shape:Array, color:uint, thickness:uint):DrawObject{
|
||||||
return new Rectangle(shape, color, thickness);
|
//return new Rectangle(shape, color, thickness);
|
||||||
|
return new Text(shape, color, thickness);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -99,5 +106,8 @@ package org.bigbluebutton.modules.whiteboard.business.shapes
|
|||||||
return new Ellipse(shape, color, thickness);
|
return new Ellipse(shape, color, thickness);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function makeText(shape:Array, color:uint, thickness:uint):DrawObject{
|
||||||
|
return new Text(shape, color, thickness);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
@ -18,7 +18,7 @@
|
|||||||
*/
|
*/
|
||||||
package org.bigbluebutton.modules.whiteboard.business.shapes
|
package org.bigbluebutton.modules.whiteboard.business.shapes
|
||||||
{
|
{
|
||||||
import flash.display.Shape;
|
import flash.display.Sprite;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* The Ellipse class. Extends the DrawObject
|
* The Ellipse class. Extends the DrawObject
|
||||||
@ -61,7 +61,7 @@ package org.bigbluebutton.modules.whiteboard.business.shapes
|
|||||||
}
|
}
|
||||||
|
|
||||||
override public function makeShape(parentWidth:Number, parentHeight:Number):void {
|
override public function makeShape(parentWidth:Number, parentHeight:Number):void {
|
||||||
var newShape:Shape = new Shape();
|
var newShape:Sprite = new Sprite();
|
||||||
newShape.graphics.lineStyle(getThickness(), getColor());
|
newShape.graphics.lineStyle(getThickness(), getColor());
|
||||||
var arrayEnd:Number = getShapeArray().length;
|
var arrayEnd:Number = getShapeArray().length;
|
||||||
var x:Number = denormalize(getShapeArray()[0], parentWidth);
|
var x:Number = denormalize(getShapeArray()[0], parentWidth);
|
||||||
|
@ -18,7 +18,7 @@
|
|||||||
*/
|
*/
|
||||||
package org.bigbluebutton.modules.whiteboard.business.shapes
|
package org.bigbluebutton.modules.whiteboard.business.shapes
|
||||||
{
|
{
|
||||||
import flash.display.Shape;
|
import flash.display.Sprite;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* The Pencil class. Extends a DrawObject
|
* The Pencil class. Extends a DrawObject
|
||||||
@ -40,7 +40,7 @@ package org.bigbluebutton.modules.whiteboard.business.shapes
|
|||||||
}
|
}
|
||||||
|
|
||||||
override public function makeShape(parentWidth:Number, parentHeight:Number):void {
|
override public function makeShape(parentWidth:Number, parentHeight:Number):void {
|
||||||
var newShape:Shape = new Shape();
|
var newShape:Sprite = new Sprite();
|
||||||
newShape.graphics.lineStyle(getThickness(), getColor());
|
newShape.graphics.lineStyle(getThickness(), getColor());
|
||||||
|
|
||||||
var graphicsCommands:Vector.<int> = new Vector.<int>();
|
var graphicsCommands:Vector.<int> = new Vector.<int>();
|
||||||
|
@ -18,7 +18,7 @@
|
|||||||
*/
|
*/
|
||||||
package org.bigbluebutton.modules.whiteboard.business.shapes
|
package org.bigbluebutton.modules.whiteboard.business.shapes
|
||||||
{
|
{
|
||||||
import flash.display.Shape;
|
import flash.display.Sprite;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* The Rectangle class. Extends a DrawObject
|
* The Rectangle class. Extends a DrawObject
|
||||||
@ -58,7 +58,7 @@ package org.bigbluebutton.modules.whiteboard.business.shapes
|
|||||||
}
|
}
|
||||||
|
|
||||||
override public function makeShape(parentWidth:Number, parentHeight:Number):void {
|
override public function makeShape(parentWidth:Number, parentHeight:Number):void {
|
||||||
var newShape:Shape = new Shape();
|
var newShape:Sprite = new Sprite();
|
||||||
newShape.graphics.lineStyle(getThickness(), getColor());
|
newShape.graphics.lineStyle(getThickness(), getColor());
|
||||||
var arrayEnd:Number = getShapeArray().length;
|
var arrayEnd:Number = getShapeArray().length;
|
||||||
var x:Number = denormalize(getShapeArray()[0], parentWidth);
|
var x:Number = denormalize(getShapeArray()[0], parentWidth);
|
||||||
|
@ -56,7 +56,9 @@ package org.bigbluebutton.modules.whiteboard.business.shapes
|
|||||||
return makeRectangle(shape as Rectangle);
|
return makeRectangle(shape as Rectangle);
|
||||||
} else if (shape.getType() == DrawObject.ELLIPSE){
|
} else if (shape.getType() == DrawObject.ELLIPSE){
|
||||||
return makeEllipse(shape as Ellipse);
|
return makeEllipse(shape as Ellipse);
|
||||||
}
|
} else if (shape.getType() == DrawObject.TEXT){
|
||||||
|
return makeText(shape as Text);
|
||||||
|
}
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -125,5 +127,9 @@ package org.bigbluebutton.modules.whiteboard.business.shapes
|
|||||||
return e;
|
return e;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private function makeText(e:Text):DrawObject{
|
||||||
|
e.makeShape(_parentWidth, _parentHeight);
|
||||||
|
return e;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
@ -0,0 +1,129 @@
|
|||||||
|
package org.bigbluebutton.modules.whiteboard.business.shapes
|
||||||
|
{
|
||||||
|
import flash.display.Bitmap;
|
||||||
|
import flash.display.BitmapData;
|
||||||
|
import flash.display.DisplayObject;
|
||||||
|
import flash.display.PixelSnapping;
|
||||||
|
import flash.display.Sprite;
|
||||||
|
import flash.geom.Matrix;
|
||||||
|
import flash.text.TextField;
|
||||||
|
|
||||||
|
import mx.controls.Image;
|
||||||
|
import mx.controls.Text;
|
||||||
|
|
||||||
|
public class Text extends DrawObject
|
||||||
|
{
|
||||||
|
public function Text(segment:Array, color:uint, thickness:uint)
|
||||||
|
{
|
||||||
|
super(DrawObject.TEXT, segment, color, thickness);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Gets rid of the unnecessary data in the segment array, so that the object can be more easily passed to
|
||||||
|
* the server
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
override protected function optimize():void{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
private var resizeCount:int = 1;
|
||||||
|
private var txtSize:uint = 10;
|
||||||
|
private var oldParentWidth:Number = 0;
|
||||||
|
private var oldParentHeight:Number = 0;
|
||||||
|
|
||||||
|
private var tb:TextBox = null;
|
||||||
|
private var bitmapdata:BitmapData;
|
||||||
|
private var scale:uint = 1;
|
||||||
|
private var fontSize:uint = 18;
|
||||||
|
|
||||||
|
override public function makeShape(parentWidth:Number, parentHeight:Number):void {
|
||||||
|
var newShape:Sprite = new Sprite();
|
||||||
|
newShape.x = denormalize(getShapeArray()[0], parentWidth);
|
||||||
|
newShape.y = denormalize(getShapeArray()[1], parentHeight);
|
||||||
|
|
||||||
|
if (oldParentHeight == 0 && oldParentWidth == 0) {
|
||||||
|
fontSize = 18;
|
||||||
|
oldParentHeight = parentHeight;
|
||||||
|
oldParentWidth = parentWidth;
|
||||||
|
|
||||||
|
} else {
|
||||||
|
fontSize = (parentHeight/oldParentHeight) * 18;
|
||||||
|
// scale *= 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
;
|
||||||
|
resizeCount++;
|
||||||
|
// newShape.width = 200;
|
||||||
|
// newShape.height = 50;
|
||||||
|
// txtSize = (parentWidth/parentHeight) * 18;
|
||||||
|
// if (tb == null) {
|
||||||
|
tb = new TextBox(fontSize);
|
||||||
|
// tb.width = 400 + resizeCount;
|
||||||
|
// tb.height = 20 + resizeCount;
|
||||||
|
// tb.htmlText = "Hello World! " + resizeCount;
|
||||||
|
var txt:mx.controls.Text = new mx.controls.Text();
|
||||||
|
txt.text = "Foo Bar!";
|
||||||
|
txt.width = 200;
|
||||||
|
bitmapdata = new BitmapData(tb.width, tb.height, false, 0x000000FF);
|
||||||
|
bitmapdata.draw(tb);
|
||||||
|
// }
|
||||||
|
// tb.height = resizeCount * 2;
|
||||||
|
// tb.width = resizeCount * 2;
|
||||||
|
newShape.addChild(tb);
|
||||||
|
|
||||||
|
/*
|
||||||
|
// var textfield:TextField = new TextField();
|
||||||
|
// textfield.text = "text";
|
||||||
|
/// textfield.width *= 1.1;
|
||||||
|
// textfield.height *= 1.1;
|
||||||
|
*/
|
||||||
|
|
||||||
|
/*
|
||||||
|
var image:Image = new Image();
|
||||||
|
image.load(new Bitmap(bitmapdata, PixelSnapping.NEVER, true));
|
||||||
|
|
||||||
|
var scaledWidth:uint = bitmapdata.width; //+ resizeCount; // * scale;
|
||||||
|
// var scaledHeight:uint = bitmapdata.height; //+ resizeCount; // * scale;
|
||||||
|
|
||||||
|
// image.width = scaledWidth;
|
||||||
|
// image.height = scaledHeight;
|
||||||
|
|
||||||
|
var scaledBitmapData:BitmapData = new BitmapData(scaledWidth, scaledHeight, true, 0x00FF0000);
|
||||||
|
scaledBitmapData.draw(image.content);
|
||||||
|
|
||||||
|
newShape.graphics.beginBitmapFill(scaledBitmapData, null, false, true);
|
||||||
|
newShape.graphics.drawRect(0, 0, scaledBitmapData.width, scaledBitmapData.width);
|
||||||
|
newShape.graphics.endFill();
|
||||||
|
image = null;
|
||||||
|
*/
|
||||||
|
/*
|
||||||
|
var mat:Matrix = new Matrix();
|
||||||
|
mat.scale(200, 20);
|
||||||
|
var bmpd_draw:BitmapData = new BitmapData(200, 20, false);
|
||||||
|
bmpd_draw.draw(bitmapdata, mat, null, null, null, true);
|
||||||
|
|
||||||
|
// var scaledBitmapData:BitmapData = bitmapScaled(tb, 200, 20);
|
||||||
|
newShape.graphics.beginBitmapFill(bmpd_draw, null, false, true);
|
||||||
|
newShape.graphics.drawRect(0, 0, bmpd_draw.width, bmpd_draw.width);
|
||||||
|
newShape.graphics.endFill();
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
// image = null;
|
||||||
|
|
||||||
|
|
||||||
|
_shape = newShape;
|
||||||
|
}
|
||||||
|
|
||||||
|
private function bitmapScaled(do_source:DisplayObject, thumbWidth:Number, thumbHeight:Number):BitmapData {
|
||||||
|
var mat:Matrix = new Matrix();
|
||||||
|
mat.scale(thumbWidth/do_source.width, thumbHeight/do_source.height);
|
||||||
|
var bmpd_draw:BitmapData = new BitmapData(thumbWidth, thumbHeight, false);
|
||||||
|
bmpd_draw.draw(do_source, mat, null, null, null, true);
|
||||||
|
return bmpd_draw;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
@ -0,0 +1,24 @@
|
|||||||
|
package org.bigbluebutton.modules.whiteboard.business.shapes
|
||||||
|
{
|
||||||
|
import flash.text.TextField;
|
||||||
|
import flash.text.TextFieldAutoSize;
|
||||||
|
import flash.text.TextFieldType;
|
||||||
|
import flash.text.TextFormat;
|
||||||
|
|
||||||
|
public class TextBox extends TextField
|
||||||
|
{
|
||||||
|
function TextBox(size:uint)
|
||||||
|
{
|
||||||
|
super();
|
||||||
|
// defaultTextFormat = new TextFormat("_sans", size, 0xFFFFFF);
|
||||||
|
// background = true;
|
||||||
|
// backgroundColor = 0xFF88FF;
|
||||||
|
multiline = false;
|
||||||
|
autoSize = TextFieldAutoSize.LEFT;
|
||||||
|
type = TextFieldType.INPUT;
|
||||||
|
htmlText = "Hello World! ";
|
||||||
|
selectable = true;
|
||||||
|
setTextFormat(new TextFormat("_sans", size, 0xFFFFFF));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
@ -96,17 +96,26 @@
|
|||||||
btnPenc.selected = true;
|
btnPenc.selected = true;
|
||||||
btnEllipse.selected = false;
|
btnEllipse.selected = false;
|
||||||
btnRectangle.selected = false;
|
btnRectangle.selected = false;
|
||||||
|
btnText.selected = false;
|
||||||
break;
|
break;
|
||||||
case DrawObject.ELLIPSE:
|
case DrawObject.ELLIPSE:
|
||||||
btnPenc.selected = false;
|
btnPenc.selected = false;
|
||||||
btnEllipse.selected = true;
|
btnEllipse.selected = true;
|
||||||
btnRectangle.selected = false;
|
btnRectangle.selected = false;
|
||||||
|
btnText.selected = false;
|
||||||
break;
|
break;
|
||||||
case DrawObject.RECTANGLE:
|
case DrawObject.RECTANGLE:
|
||||||
btnPenc.selected = false;
|
btnPenc.selected = false;
|
||||||
btnEllipse.selected = false;
|
btnEllipse.selected = false;
|
||||||
btnRectangle.selected = true;
|
btnRectangle.selected = true;
|
||||||
|
btnText.selected = false;
|
||||||
break;
|
break;
|
||||||
|
case DrawObject.TEXT:
|
||||||
|
btnPenc.selected = false;
|
||||||
|
btnEllipse.selected = false;
|
||||||
|
btnRectangle.selected = false;
|
||||||
|
btnText.selected = true;
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -186,6 +195,8 @@
|
|||||||
|
|
||||||
]]>
|
]]>
|
||||||
</mx:Script>
|
</mx:Script>
|
||||||
|
<mx:Button width="20" height="20" id="btnText" click="setShape(DrawObject.TEXT)" icon="{rectangle_icon}"
|
||||||
|
toolTip="{ResourceUtil.getInstance().getString('bbb.highlighter.toolbar.rectangle')}" toggle="true" />
|
||||||
<mx:Button width="20" height="20" id="btnPenc" click="setShape(DrawObject.PENCIL)" icon="{pencil_icon}"
|
<mx:Button width="20" height="20" id="btnPenc" click="setShape(DrawObject.PENCIL)" icon="{pencil_icon}"
|
||||||
toolTip="{ResourceUtil.getInstance().getString('bbb.highlighter.toolbar.pencil')}" toggle="true" selected="true" />
|
toolTip="{ResourceUtil.getInstance().getString('bbb.highlighter.toolbar.pencil')}" toggle="true" selected="true" />
|
||||||
<mx:Button width="20" height="20" id="btnRectangle" click="setShape(DrawObject.RECTANGLE)" icon="{rectangle_icon}"
|
<mx:Button width="20" height="20" id="btnRectangle" click="setShape(DrawObject.RECTANGLE)" icon="{rectangle_icon}"
|
||||||
|
Loading…
Reference in New Issue
Block a user