< prev index next >

modules/javafx.web/src/main/native/Source/WebCore/platform/java/PasteboardJava.cpp

Print this page




  90     CALL_PB_STATIC_JSTROBJ_METHOD(jstr);
  91 
  92     return jstr ? String(env, jstr) : String();
  93 }
  94 
  95 void jWritePlainText(const String& plainText)
  96 {
  97     DEFINE_PB_STATIC_METHOD("writePlainText", "(Ljava/lang/String;)V");
  98     CALL_PB_STATIC_VOID_METHOD((jstring)plainText.toJavaString(env));
  99 }
 100 
 101 void jWriteSelection(bool canSmartCopyOrDelete, const String& plainText, const String& markup)
 102 {
 103     DEFINE_PB_STATIC_METHOD("writeSelection", "(ZLjava/lang/String;Ljava/lang/String;)V");
 104     CALL_PB_STATIC_VOID_METHOD(
 105         bool_to_jbool(canSmartCopyOrDelete),
 106         (jstring)plainText.toJavaString(env),
 107         (jstring)markup.toJavaString(env));
 108 }
 109 
 110 void jWriteImage(const Image& image)
 111 {
 112     DEFINE_PB_STATIC_METHOD("writeImage", "(Lcom/sun/webkit/graphics/WCImageFrame;)V");
 113     CALL_PB_STATIC_VOID_METHOD(jobject(*const_cast<Image&>(image).javaImage()));


 114 }
 115 
 116 void jWriteURL(const String& url, const String& markup)
 117 {
 118     DEFINE_PB_STATIC_METHOD("writeUrl", "(Ljava/lang/String;Ljava/lang/String;)V");
 119     CALL_PB_STATIC_VOID_METHOD(
 120         (jstring)url.toJavaString(env),
 121         (jstring)markup.toJavaString(env));
 122 }
 123 
 124 String jGetHtml()
 125 {
 126     DEFINE_PB_STATIC_METHOD("getHtml", "()Ljava/lang/String;");
 127     CALL_PB_STATIC_JSTROBJ_METHOD(jstr);
 128 
 129     return jstr ? String(env, jstr) : String();
 130 }
 131 
 132 ///////////////////
 133 // Helper functions


 309     String markup(urlToMarkup(pasteboardURL.url, title));
 310 
 311     m_dataObject->clear();
 312     m_dataObject->setURL(pasteboardURL.url, title);
 313     m_dataObject->setPlainText(pasteboardURL.url.string());
 314     m_dataObject->setHTML(markup, pasteboardURL.url);
 315 
 316     if (m_copyPasteMode) {
 317         jWriteURL(pasteboardURL.url.string(), markup);
 318     }
 319 }
 320 
 321 void Pasteboard::writeImage(Element& node, const URL& url, const String& title)
 322 {
 323     m_dataObject->setURL(url, title);
 324 
 325     // Write the bytes of the image to the file format
 326     writeImageToDataObject(m_dataObject,    node, url);
 327 
 328     AtomicString imageURL = node.getAttribute(HTMLNames::srcAttr);

 329     if (!imageURL.isEmpty()) {
 330         String fullURL = node.document().completeURL(stripLeadingAndTrailingHTMLSpaces(imageURL));
 331         if (!fullURL.isEmpty()) {
 332             m_dataObject->setHTML(
 333                 imageToMarkup(fullURL, node),
 334                 node.document().url());
 335         }
 336     }
 337     if (m_copyPasteMode) {
 338         CachedImage* cachedImage = getCachedImage(node);
 339         // CachedImage not exist
 340         if (!cachedImage) {
 341             return;
 342         }
 343 
 344         Image* image = cachedImage->image();
 345         // Image data not exist
 346         if (!image) {
 347             return;
 348         }
 349 
 350         // SVGImage are not Bitmap backed, Let the receiving end decode the svg image
 351         // based on url and its markup
 352         if (image->isSVGImage()) {
 353             jWriteURL(url.string(), createMarkup(node));
 354         }
 355         else {
 356             jWriteImage(*image);








 357         }
 358     }
 359 }
 360 
 361 void Pasteboard::writeString(const String& type, const String& data)
 362 {
 363     // DnD only mode
 364     if (m_dataObject) {
 365         m_dataObject->setData(type, data);
 366     }
 367 }
 368 
 369 String Pasteboard::readString(const String& type)
 370 {
 371     // DnD only mode
 372     if (m_dataObject) {
 373         return m_dataObject->getData(type);
 374     }
 375     return String();
 376 }




  90     CALL_PB_STATIC_JSTROBJ_METHOD(jstr);
  91 
  92     return jstr ? String(env, jstr) : String();
  93 }
  94 
  95 void jWritePlainText(const String& plainText)
  96 {
  97     DEFINE_PB_STATIC_METHOD("writePlainText", "(Ljava/lang/String;)V");
  98     CALL_PB_STATIC_VOID_METHOD((jstring)plainText.toJavaString(env));
  99 }
 100 
 101 void jWriteSelection(bool canSmartCopyOrDelete, const String& plainText, const String& markup)
 102 {
 103     DEFINE_PB_STATIC_METHOD("writeSelection", "(ZLjava/lang/String;Ljava/lang/String;)V");
 104     CALL_PB_STATIC_VOID_METHOD(
 105         bool_to_jbool(canSmartCopyOrDelete),
 106         (jstring)plainText.toJavaString(env),
 107         (jstring)markup.toJavaString(env));
 108 }
 109 
 110 void jWriteImage(const Image& image, const String& fileType)
 111 {
 112     DEFINE_PB_STATIC_METHOD("writeImage", "(Lcom/sun/webkit/graphics/WCImageFrame;Ljava/lang/String;)V");
 113     CALL_PB_STATIC_VOID_METHOD(
 114         jobject(*const_cast<Image&>(image).javaImage()),
 115         (jstring)fileType.toJavaString(env));
 116 }
 117 
 118 void jWriteURL(const String& url, const String& markup)
 119 {
 120     DEFINE_PB_STATIC_METHOD("writeUrl", "(Ljava/lang/String;Ljava/lang/String;)V");
 121     CALL_PB_STATIC_VOID_METHOD(
 122         (jstring)url.toJavaString(env),
 123         (jstring)markup.toJavaString(env));
 124 }
 125 
 126 String jGetHtml()
 127 {
 128     DEFINE_PB_STATIC_METHOD("getHtml", "()Ljava/lang/String;");
 129     CALL_PB_STATIC_JSTROBJ_METHOD(jstr);
 130 
 131     return jstr ? String(env, jstr) : String();
 132 }
 133 
 134 ///////////////////
 135 // Helper functions


 311     String markup(urlToMarkup(pasteboardURL.url, title));
 312 
 313     m_dataObject->clear();
 314     m_dataObject->setURL(pasteboardURL.url, title);
 315     m_dataObject->setPlainText(pasteboardURL.url.string());
 316     m_dataObject->setHTML(markup, pasteboardURL.url);
 317 
 318     if (m_copyPasteMode) {
 319         jWriteURL(pasteboardURL.url.string(), markup);
 320     }
 321 }
 322 
 323 void Pasteboard::writeImage(Element& node, const URL& url, const String& title)
 324 {
 325     m_dataObject->setURL(url, title);
 326 
 327     // Write the bytes of the image to the file format
 328     writeImageToDataObject(m_dataObject,    node, url);
 329     
 330     AtomicString imageURL = node.getAttribute(HTMLNames::srcAttr);
 331     URL fullURL;
 332     if (!imageURL.isEmpty()) {
 333         fullURL = node.document().completeURL(stripLeadingAndTrailingHTMLSpaces(imageURL));
 334         if (!fullURL.isEmpty()) {
 335             m_dataObject->setHTML(
 336                 imageToMarkup(fullURL.string(), node),
 337                 node.document().url());
 338         }
 339     }
 340     if (m_copyPasteMode) {
 341         CachedImage* cachedImage = getCachedImage(node);
 342         // CachedImage not exist
 343         if (!cachedImage) {
 344             return;
 345         }
 346 
 347         Image* image = cachedImage->image();
 348         // Image data not exist
 349         if (!image) {
 350             return;
 351         }
 352 
 353         // SVGImage are not Bitmap backed, Let the receiving end decode the svg image
 354         // based on url and its markup
 355         if (image->isSVGImage()) {
 356             jWriteURL(url.string(), createMarkup(node));
 357         }
 358         else {
 359             String lastPathComponent = fullURL.lastPathComponent();
 360             String extension;
 361             size_t dotOffset = lastPathComponent.reverseFind('.');
 362             if (dotOffset != notFound)
 363                 extension = lastPathComponent.substring(dotOffset + 1);            
 364             else
 365                 extension = "png";
 366 
 367             jWriteImage(*image, extension);
 368         }
 369     }
 370 }
 371 
 372 void Pasteboard::writeString(const String& type, const String& data)
 373 {
 374     // DnD only mode
 375     if (m_dataObject) {
 376         m_dataObject->setData(type, data);
 377     }
 378 }
 379 
 380 String Pasteboard::readString(const String& type)
 381 {
 382     // DnD only mode
 383     if (m_dataObject) {
 384         return m_dataObject->getData(type);
 385     }
 386     return String();
 387 }


< prev index next >