मैं एक जीडब्ल्यूटी लाइब्रेरी (gwt-openlayers) का उपयोग कर रहा हूं जो मुझे Google मानचित्र के समान मनमाने ढंग से HTML युक्त नक्शा पॉपअप बनाने की अनुमति देता है। मुझे इस एचटीएमएल को एक जीडब्ल्यूटी बटन विजेट रखने की आवश्यकता है।एक डीवी तत्व में जीडब्ल्यूटी विजेट डालने
Element outerDiv = DOM.createDiv();
outerDiv.getStyle().setOverflow(Overflow.HIDDEN);
outerDiv.getStyle().setWidth(100, Unit.PCT);
outerDiv.appendChild(new HTML(mapPOI.getHtmlDetails()).getElement());
Button popupButton = new Button("View Property");
popupButton.getElement().getStyle().setFloat(com.google.gwt.dom.client.Style.Float.RIGHT);
outerDiv.appendChild(popupButton.getElement());
तो मैं इन तत्वों के लिए स्रोत HTML हो रही है
बुला और इस एचटीएमएल डालने से:
मैं इस तरह ऑन-द-मक्खी कुछ HTML तत्वों बना रहा हूं मेरे मानचित्र मार्कर में। अब मेरा नक्शा मार्कर बटन सहित सामग्री ठीक से प्रदर्शित करता है। हालांकि, बटन किसी भी घटना का जवाब नहीं देगा! जो मैं इकट्ठा कर सकता हूं, ऐसा इसलिए है क्योंकि एटैच() विधि पर बटन कभी नहीं कहा जा रहा है।
क्या ऐसा करने का कोई बेहतर तरीका है?
धन्यवाद,
जॉन
~~~~ संपादित ~~~~
मैं अब स्वीकार कर लिया विधि की तलाश में होना करने के लिए इस है, जो लगता है ऐसा करने का एक नया तरीका कोशिश कर रहा हूँ अन्य समान पदों पर।
सबसे पहले मैं अपने div बना रहा हूं:
String divId = "popup-" + ref;
String innerHTML = "<div id=\"" +divId + "\"></div>";
तब मैं अपने मानचित्र पॉपअप को यह जोड़ रहा है और यह प्रदर्शित (जो यह डोम के लिए कहते हैं)। बाद पॉपअप प्रदर्शित किया गया है, मैं तत्व इस प्रकार हो रही है और इसके चारों ओर एक HTMLPanel रैप करने के लिए कोशिश कर रहा है:
Element element = Document.get().getElementById(divId);
HTMLPanel popupHTML = HTMLPanel.wrap(element);
मेरे div तत्व सफलतापूर्वक लिया गया है। हालांकि, HTMLPanel.wrap(element);
पूरा नहीं हुआ है।
assert !widgetsToDetach.contains(widget) : "detachOnUnload() called twice "
+ "for the same widget";
assert !isElementChildOfWidget(widget.getElement()) : "A widget that has "
+ "an existing parent widget may not be added to the detach list";
मैं में कुछ breakpoints डाल दिया और यह है कि 2 दावे विफल हो रहा है लगता है: इस का कारण यह है कि wrap(..)
कॉल RootPanel.detachOnWindowClose(Widget widget)
है, जो निम्नलिखित दावे भी शामिल है!
क्या किसी को कोई विचार है कि यह मामला क्यों हो सकता है? इस दावे को विफल करने में वास्तव में विधि की पूरी विफलता (कोई वापसी नहीं) होनी चाहिए?
मैंने इस दृष्टिकोण की कोशिश की, लेकिन ऐसा लगता है कि यह काम नहीं कर रहा है। यह पिछले 'रूटपेनल.जेट ("divId") भी नहीं मिलता है, लेकिन यह भी अपवाद नहीं फेंकता है! बहुत अजीब। – DeadPassive