GWTP

2011-09-28 3 views
11

के साथ नेस्टेड प्रेजेंटर्स मेरे पास मेरे मुख्य प्रतिनिधि में सामग्री स्लॉट हैं, मैं ऐप लोड करते समय, कैसे रख सकता हूं, होम प्रेजेंटर को एक स्लॉट में रख सकता हूं और दूसरे में मेनू स्लॉट डाल सकता हूं?GWTP

या संभव नहीं है?

अग्रिम धन्यवाद।

उत्तर

16

हाँ आप कर सकते हैं! निम्नलिखित उदाहरण कोड में, मुझे लगता है कि आपका होमपेजर एक स्थान है और प्रस्तुतकर्ता को बढ़ाता है, और आपका मेनू प्रस्तुतकर्ता प्रस्तुतकर्ता विजिट बढ़ाता है।
अपने MainPresenter में:

@ContentSlot public static final Type<RevealContentHandler<?>> MAIN_SLOT = new Type<RevealContentHandler<?>>(); 
@ContentSlot public static final Type<RevealContentHandler<?>> MENU_SLOT = new Type<RevealContentHandler<?>>(); 

@Override 
protected void onReveal() { 
    super.onReveal(); 
    setInSlot(MENU_SLOT, menuPresenter); 
} 

अपने HomePresenter में:

@Override 
protected void revealInParent() { 
    RevealContentEvent.fire(this, MainPresenter.MAIN_SLOT, this); 
} 
फिर MainView में

:

@UiField Panel mainContainer; 
@UiField Panel menuContainer; 

@Override 
public void setInSlot(Object slot, Widget content) { 
    if (slot == MainPresenter.MAIN_SLOT) { 
     mainContainer.clear(); 
     mainContainer.add(content); 
    } else if (slot == MainPresenter.MENU_SLOT) { 
     menuContainer.clear(); 
     menuContainer.add(content); 
    } else { 
     super.setInSlot(slot, content); 
    } 
} 
+0

@Mikael, आपका उत्तर वास्तव में मदद करता है। लेकिन मेरे पास एक प्रश्न है। यहां आप जो करते हैं वह मुख्य-संयोजक (पैनल) में सामग्री (विजेट) जोड़ें-निकालें-जोड़ें-निकालें। क्या यह एक उपर नहीं है? क्या हम सामग्री (विजेट) के छिपे हुए शो की तरह कुछ नहीं कर सकते? – RAS

+1

@RAS असल में, मैं नहीं देखता कि इसे किसी अन्य तरीके से कैसे किया जाए। SetInSlot() विधि को अलग-अलग प्रस्तुतकर्ताओं के साथ यूआई की संरचना के साथ करना है, इसलिए किसी बिंदु पर आपको पैनल में विजेट को इंजेक्ट करना होगा। साथ ही, पैनल को साफ़ करने का मतलब यह नहीं है कि निहित विजेट को त्याग दिया गया है, इसे बाद में फिर से इंजेक्शन दिया जा सकता है। –

+1

@MikaelCouzic, आपके उत्तर के लिए धन्यवाद। मैं तुम्हारा मुद्दा समझ गया। – RAS

1

GWTP 1.5+ के उपयोगकर्ताओं के लिए, ध्यान दें कि नए परिवर्तन का एक बहुत कुछ है स्लॉट के लिए पेश किया गया है, और प्रस्तुतियों को प्रकट किया। प्रश्न में मामला अब पेज सामग्री के लिए नेस्टेड स्लॉट और एक मेनू के लिए एक स्थायी स्लॉट का उपयोग करके पूरा किया जा सकता है जिसे आप अपने सभी पृष्ठों पर प्रदर्शित करना चाहते हैं।

सौभाग्य से, ये परिवर्तन अच्छी तरह से प्रलेखित हैं। नए स्लॉट प्रकारों पर स्पष्टीकरण के लिए GWTP slot documentation देखें, उदाहरण के साथ उदाहरणों के साथ।

+0

अब दो दिनों के लिए प्रलेखन के माध्यम से पढ़ रहा है लेकिन मैं अभी भी [इस बल्कि सरल सवाल] का जवाब नहीं दे सकता (http://stackoverflow.com/questions/35729549/how-to-use-gwtp-for-a-listview-widget) ^^ – displayname