📄 comment.java
字号:
// Decompiled by Jad v1.5.7g. Copyright 2000 Pavel Kouznetsov.
// Jad home page: http://www.geocities.com/SiliconValley/Bridge/8617/jad.html
// Decompiler options: packimports(3) fieldsfirst ansi
// Source File Name: Comment.java
package jxl.biff.drawing;
import common.Assert;
import common.Logger;
import java.io.IOException;
import jxl.WorkbookSettings;
import jxl.biff.*;
import jxl.write.biff.File;
// Referenced classes of package jxl.biff.drawing:
// Sp, ClientAnchor, SpContainer, Opt,
// ClientData, ClientTextBox, ObjRecord, MsoDrawingRecord,
// TextObjectRecord, NoteRecord, DrawingGroupObject, Origin,
// DrawingData, DrawingGroup, ShapeType, EscherContainer,
// EscherRecord, EscherRecordType
public class Comment
implements DrawingGroupObject
{
private static Logger logger;
private EscherContainer readSpContainer;
private EscherContainer spContainer;
private MsoDrawingRecord msoDrawingRecord;
private ObjRecord objRecord;
private boolean initialized;
private int objectId;
private int blipId;
private int shapeId;
private int column;
private int row;
private double width;
private double height;
private int referenceCount;
private EscherContainer escherData;
private Origin origin;
private DrawingGroup drawingGroup;
private DrawingData drawingData;
private ShapeType type;
private int drawingNumber;
private MsoDrawingRecord mso;
private TextObjectRecord txo;
private NoteRecord note;
private ContinueRecord text;
private ContinueRecord formatting;
private String commentText;
private WorkbookSettings workbookSettings;
static Class class$jxl$biff$drawing$Comment; /* synthetic field */
public Comment(MsoDrawingRecord msorec, ObjRecord obj, DrawingData dd, DrawingGroup dg, WorkbookSettings ws)
{
initialized = false;
drawingGroup = dg;
msoDrawingRecord = msorec;
drawingData = dd;
objRecord = obj;
initialized = false;
workbookSettings = ws;
origin = Origin.READ;
drawingData.addData(msoDrawingRecord.getData());
drawingNumber = drawingData.getNumDrawings() - 1;
drawingGroup.addDrawing(this);
Assert.verify(msoDrawingRecord != null && objRecord != null);
if(!initialized)
initialize();
}
public Comment(DrawingGroupObject dgo, DrawingGroup dg, WorkbookSettings ws)
{
initialized = false;
Comment d = (Comment)dgo;
Assert.verify(d.origin == Origin.READ);
msoDrawingRecord = d.msoDrawingRecord;
objRecord = d.objRecord;
initialized = false;
origin = Origin.READ;
drawingData = d.drawingData;
drawingGroup = dg;
drawingNumber = d.drawingNumber;
drawingGroup.addDrawing(this);
mso = d.mso;
txo = d.txo;
text = d.text;
formatting = d.formatting;
note = d.note;
width = d.width;
height = d.height;
workbookSettings = ws;
}
public Comment(String txt, int c, int r)
{
initialized = false;
initialized = true;
origin = Origin.WRITE;
column = c;
row = r;
referenceCount = 1;
type = ShapeType.TEXT_BOX;
commentText = txt;
width = 3D;
height = 4D;
}
private void initialize()
{
readSpContainer = drawingData.getSpContainer(drawingNumber);
Assert.verify(readSpContainer != null);
EscherRecord children[] = readSpContainer.getChildren();
Sp sp = (Sp)readSpContainer.getChildren()[0];
objectId = objRecord.getObjectId();
shapeId = sp.getShapeId();
type = ShapeType.getType(sp.getShapeType());
if(type == ShapeType.UNKNOWN)
logger.warn("Unknown shape type");
ClientAnchor clientAnchor = null;
for(int i = 0; i < children.length && clientAnchor == null; i++)
if(children[i].getType() == EscherRecordType.CLIENT_ANCHOR)
clientAnchor = (ClientAnchor)children[i];
if(clientAnchor == null)
{
logger.warn("client anchor not found");
} else
{
column = (int)clientAnchor.getX1() - 1;
row = (int)clientAnchor.getY1() + 1;
width = clientAnchor.getX2() - clientAnchor.getX1();
height = clientAnchor.getY2() - clientAnchor.getY1();
}
initialized = true;
}
public final void setObjectId(int objid, int bip, int sid)
{
objectId = objid;
blipId = bip;
shapeId = sid;
if(origin == Origin.READ)
origin = Origin.READ_WRITE;
}
public final int getObjectId()
{
if(!initialized)
initialize();
return objectId;
}
public final int getShapeId()
{
if(!initialized)
initialize();
return shapeId;
}
public final int getBlipId()
{
if(!initialized)
initialize();
return blipId;
}
public MsoDrawingRecord getMsoDrawingRecord()
{
return msoDrawingRecord;
}
public EscherContainer getSpContainer()
{
if(!initialized)
initialize();
if(origin == Origin.READ)
return getReadSpContainer();
if(spContainer == null)
{
spContainer = new SpContainer();
Sp sp = new Sp(type, shapeId, 2560);
spContainer.add(sp);
Opt opt = new Opt();
opt.addProperty(344, false, false, 0);
opt.addProperty(385, false, false, 0x8000050);
opt.addProperty(387, false, false, 0x8000050);
opt.addProperty(959, false, false, 0x20002);
spContainer.add(opt);
ClientAnchor clientAnchor = new ClientAnchor((double)column + 1.3D, Math.max(0.0D, (double)row - 0.59999999999999998D), (double)column + 1.3D + width, (double)row + height);
spContainer.add(clientAnchor);
ClientData clientData = new ClientData();
spContainer.add(clientData);
ClientTextBox clientTextBox = new ClientTextBox();
spContainer.add(clientTextBox);
}
return spContainer;
}
public void setDrawingGroup(DrawingGroup dg)
{
drawingGroup = dg;
}
public DrawingGroup getDrawingGroup()
{
return drawingGroup;
}
public Origin getOrigin()
{
return origin;
}
public int getReferenceCount()
{
return referenceCount;
}
public void setReferenceCount(int r)
{
referenceCount = r;
}
public double getX()
{
if(!initialized)
initialize();
return (double)column;
}
public void setX(double x)
{
if(origin == Origin.READ)
{
if(!initialized)
initialize();
origin = Origin.READ_WRITE;
}
column = (int)x;
}
public double getY()
{
if(!initialized)
initialize();
return (double)row;
}
public void setY(double y)
{
if(origin == Origin.READ)
{
if(!initialized)
initialize();
origin = Origin.READ_WRITE;
}
row = (int)y;
}
public double getWidth()
{
if(!initialized)
initialize();
return width;
}
public void setWidth(double w)
{
if(origin == Origin.READ)
{
if(!initialized)
initialize();
origin = Origin.READ_WRITE;
}
width = w;
}
public double getHeight()
{
if(!initialized)
initialize();
return height;
}
public void setHeight(double h)
{
if(origin == Origin.READ)
{
if(!initialized)
initialize();
origin = Origin.READ_WRITE;
}
height = h;
}
private EscherContainer getReadSpContainer()
{
if(!initialized)
initialize();
return readSpContainer;
}
public byte[] getImageData()
{
Assert.verify(origin == Origin.READ || origin == Origin.READ_WRITE);
if(!initialized)
initialize();
return drawingGroup.getImageData(blipId);
}
public ShapeType getType()
{
return type;
}
public void setTextObject(TextObjectRecord t)
{
txo = t;
}
public void setNote(NoteRecord t)
{
note = t;
}
public void setText(ContinueRecord t)
{
text = t;
}
public void setFormatting(ContinueRecord t)
{
formatting = t;
}
public byte[] getImageBytes()
{
Assert.verify(false);
return null;
}
public String getImageFilePath()
{
Assert.verify(false);
return null;
}
public void addMso(MsoDrawingRecord d)
{
mso = d;
drawingData.addRawData(mso.getData());
}
public void writeAdditionalRecords(File outputFile)
throws IOException
{
if(origin == Origin.READ)
{
outputFile.write(objRecord);
if(mso != null)
outputFile.write(mso);
outputFile.write(txo);
outputFile.write(text);
if(formatting != null)
outputFile.write(formatting);
return;
} else
{
ObjRecord objrec = new ObjRecord(objectId, ObjRecord.EXCELNOTE);
outputFile.write(objrec);
ClientTextBox textBox = new ClientTextBox();
MsoDrawingRecord msod = new MsoDrawingRecord(textBox.getData());
outputFile.write(msod);
TextObjectRecord txorec = new TextObjectRecord(getText());
outputFile.write(txorec);
byte textData[] = new byte[commentText.length() * 2 + 1];
textData[0] = 1;
StringHelper.getUnicodeBytes(commentText, textData, 1);
ContinueRecord textContinue = new ContinueRecord(textData);
outputFile.write(textContinue);
byte frData[] = new byte[16];
IntegerHelper.getTwoBytes(0, frData, 0);
IntegerHelper.getTwoBytes(0, frData, 2);
IntegerHelper.getTwoBytes(commentText.length(), frData, 8);
IntegerHelper.getTwoBytes(0, frData, 10);
ContinueRecord frContinue = new ContinueRecord(frData);
outputFile.write(frContinue);
return;
}
}
public void writeTailRecords(File outputFile)
throws IOException
{
if(origin == Origin.READ)
{
outputFile.write(note);
return;
} else
{
NoteRecord noteRecord = new NoteRecord(column, row, objectId);
outputFile.write(noteRecord);
return;
}
}
public int getRow()
{
return note.getRow();
}
public int getColumn()
{
return note.getColumn();
}
public String getText()
{
if(commentText == null)
{
Assert.verify(text != null);
byte td[] = text.getData();
if(td[0] == 0)
commentText = StringHelper.getString(td, td.length - 1, 1, workbookSettings);
else
commentText = StringHelper.getUnicodeString(td, (td.length - 1) / 2, 1);
}
return commentText;
}
public int hashCode()
{
return commentText.hashCode();
}
public void setCommentText(String t)
{
commentText = t;
if(origin == Origin.READ)
origin = Origin.READ_WRITE;
}
public boolean isFirst()
{
return msoDrawingRecord.isFirst();
}
public boolean isFormObject()
{
return true;
}
static Class class$(String x0)
{
return Class.forName(x0);
ClassNotFoundException x1;
x1;
throw new NoClassDefFoundError(x1.getMessage());
}
static
{
logger = Logger.getLogger(class$jxl$biff$drawing$Comment != null ? class$jxl$biff$drawing$Comment : (class$jxl$biff$drawing$Comment = class$("jxl.biff.drawing.Comment")));
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -