import org.eclipse.swt.dnd.DropTarget; import org.eclipse.swt.graphics.Point; import com.businessobjects.crystalreports.designer.sdk.ICrystalReportsEditorPage import com.crystaldecisions.sdk.occa.report.definition.ISection; import com.crystaldecisions.sdk.occa.report.definition.ITextObject; import com.crystaldecisions.sdk.occa.report.definition.TextObject; import com.crystaldecisions.sdk.occa.report.definition.Paragraphs; import com.crystaldecisions.sdk.occa.report.definition.IParagraph; import com.crystaldecisions.sdk.occa.report.definition.Paragraph; import com.crystaldecisions.sdk.occa.report.definition.IParagraphTextElement; import com.crystaldecisions.sdk.occa.report.definition.ParagraphTextElement; import com.crystaldecisions.sdk.occa.report.application.IReportClientDocument;
DropTarget target = (DropTarget) event.widget; final Point location = target.getControl().toControl(new Point(event.x, event.y));
ITextObject textObj = new TextObject(); Paragraphs paragraphs = textObj.getParagraphs(); IParagraph paragraph = new Paragraph(); paragraphs.add(paragraph); IParagraphTextElement textElement = new ParagraphTextElement(); textElement.setText(message); paragraph.getParagraphElements().add(textElement);
textObj.setLeft(location.x); textObj.setTop(location.y);
import org.eclipse.jface.util.TransferDropTargetListener;
import org.eclipse.swt.dnd.DropTarget;
import org.eclipse.swt.dnd.DropTargetAdapter;
import org.eclipse.swt.dnd.DropTargetEvent;
import org.eclipse.swt.dnd.TextTransfer;
import org.eclipse.swt.dnd.Transfer;
import org.eclipse.swt.graphics.Point;
import com.businessobjects.crystalreports.designer.sdk.ICrystalReportsEditor;
import com.businessobjects.crystalreports.designer.sdk.ICrystalReportsEditorPage;
import com.businessobjects.crystalreports.designer.sdk.util.DNDHelper;
import com.crystaldecisions.sdk.occa.report.application.IReportClientDocument;
import com.crystaldecisions.sdk.occa.report.definition.IParagraph;
import com.crystaldecisions.sdk.occa.report.definition.IParagraphTextElement;
import com.crystaldecisions.sdk.occa.report.definition.ISection;
import com.crystaldecisions.sdk.occa.report.definition.ITextObject;
import com.crystaldecisions.sdk.occa.report.definition.Paragraph;
import com.crystaldecisions.sdk.occa.report.definition.ParagraphTextElement;
import com.crystaldecisions.sdk.occa.report.definition.Paragraphs;
import com.crystaldecisions.sdk.occa.report.definition.TextObject;
import com.crystaldecisions.sdk.occa.report.lib.ReportSDKException;
public class MyDndDropHandler extends DropTargetAdapter implements TransferDropTargetListener
{
public MyDndDropHandler()
{
}
public Transfer getTransfer()
{
return TextTransfer.getInstance();
}
public boolean isEnabled (DropTargetEvent event)
{
ICrystalReportsEditor editor = DNDHelper.getCrystalReportsEditorAtScreenLocation(event.x, event.y);
return (editor != null) && (event.data instanceof String);
}
public void drop (DropTargetEvent event)
{
ICrystalReportsEditor editor = DNDHelper.getCrystalReportsEditorAtScreenLocation(event.x, event.y);
if (editor == null)
return;
ICrystalReportsEditorPage page = editor.getActiveEditorPage();
DropTarget target = (DropTarget) event.widget;
final Point location = target.getControl().toControl(new Point(event.x, event.y));
final ISection section = DNDHelper.getDropTargetSection(page, location);
if (section != null)
{
String message = (String)event.data;
ITextObject textObj = new TextObject();
Paragraphs paragraphs = textObj.getParagraphs();
IParagraph paragraph = new Paragraph();
paragraphs.add(paragraph);
IParagraphTextElement textElement = new ParagraphTextElement();
textElement.setText(message);
paragraph.getParagraphElements().add(textElement);
textObj.setLeft(location.x);
textObj.setTop(location.y);
try
{
IReportClientDocument rcd = editor.getReportClientDocument();
rcd.getReportDefController().getReportObjectController().add(textObj, section, -1);
}
catch (ReportSDKException e)
{
e.printStackTrace();
}
}
}
}|
Business Objects, an SAP company http://www.businessobjects.com/ Support services http://www.businessobjects.com/services/support/ Product Documentation on the Web http://support.businessobjects.com/documentation/ |