2008-11-26 5 views
7

में वर्णित है मेरी कंपनी वर्तमान में जावा एफएटी क्लाइंट के विकास का मूल्यांकन करती है। इसे एक गतिशील जीयूआई का समर्थन करना चाहिए और सर्वर पक्ष पर जितना संभव हो उतना तर्क होना चाहिए।जावा जीयूआई एक्सएमएल

<fields> 
    <field type="checkbox" name="active" checked="false" x="10" y="10" /> 
    <field type="textbox" name="username" value="dummy" x="10" y="30" /> 
    <field type="selection" name="group" selectedIndex="1" x="10" y="50"> 
    <data index="0">user</data> 
    <data index="1">admin</data> 
    </field> 
    <field type="button" name="ok" x="10" y="70" /> 
    <field type="button" name="cancel" x="10" y="90" /> 
</field> 

पृष्ठभूमि
: इसलिए विचार स्क्रीन फैट ग्राहक के लिए XML के रूप में, वापस एक संरचना में की तरह भेजने के उपयोगकर्ता के लिए यह दिखाने के लिए और समान करने के लिए "HTML फार्म" में प्रवेश किया डेटा भेजने के लिए आया था प्रायोजक एक डेटा एंट्री और समीक्षा अनुप्रयोग की तलाश में है, जिसे वे कॉन्फ़िगरेशन को बदलकर अपनी जरूरतों के अनुरूप अनुकूलित कर सकते हैं। इसलिए हमें अपने प्रशासकों को तथाकथित "स्क्रीन" (उर्फ रूप) डिजाइन करने की संभावना प्रदान करना है और उन्हें एक क्लाइंट/सर्वर सिस्टम प्रदान करना है जो उन्हें अपने अंतिम उपयोगकर्ताओं को वितरित करने में सक्षम बनाता है। आने वाले डेटा (यानी उपयोगकर्ता द्वारा दर्ज डेटा) को पहले से ही मौजूदा वर्कफ़्लो इंजन पर भेजा जाएगा जो व्यवसाय तर्क को संभाला जा रहा है।

प्रश्न
क्या किसी ने वहां कुछ ऐसा विकसित किया है? आप कौन सी पुस्तकालयों का सुझाव देंगे? कोई प्रो & विपक्ष? बहुत धन्यवाद!

अद्यतन
आपके इनपुट के लिए बहुत धन्यवाद, ThinletJavaFX के रूप में भी बहुत आशाजनक लगता है - मैं दोनों पर गौर करेंगे।

+0

मुझे लगता है कि राजनीतिक रूप से सही शब्द "मोटी" ग्राहक :) – Draemon

+0

नहीं है, लोगों को अपने व्यापार उपयोगकर्ताओं पर है कि भ्रमित करेगा कास्टिंग आक्षेप के साथ है; -} – ConcernedOfTunbridgeWells

उत्तर

2

जब मैंने पिछली चीज़ की तलाश की, तो दो विकल्प Thinlet और Apache Jelly थे।

प्लस अंक थे आप तारों और व्यवहार से आपके आवेदन के निर्माण को अलग कर सकता है। मैं उनमें से या तो की व्यवहार्यता यह करने के लिए के बारे में सुनिश्चित नहीं हूँ, लेकिन मुझे लगता है कि वहाँ एक और टूलकिट में अनुवाद करने के लिए कुछ कार्यक्षमता, Lazlo के रूप में ज्यादा AJAX और फ्लैश में अनुवाद कर सकते हैं हो सकता है।

इससे पहले कि मैंने इन्हें पाया, मैंने एक समान टूलकिट लिखा था (जब Echo काटने वाला किनारा था, और जावा 1.3 खून बह रहा था), जेएचटीएमएलडीटर के आधार पर। यह काम करता था, लेकिन श्रोताओं को एक ही वीएम में रेंडरर के रूप में चल रहा था।

जो क्लाइंट/सर्वर संदर्भ में @Draemon बनाता है, मुझे यह पूछना होगा कि यह बड़ी समस्या को हल करने का एक उपयोगी तरीका है या नहीं। मुझे लगता है कि आप क्लाइंट पर बहुत सारे CPU चक्रों को ऑफ़लोड करना चाहते हैं? शायद अगर आप थोड़ा और जोड़ते हैं, तो हम और सुझाव दे सकते हैं? यह उस दृष्टिकोण को इंगित करता है जहां आपका एप्लिकेशन डेस्कटॉप पर localhost वेबसर्वर के रूप में तैनात किया गया है, और आप स्थानीय ब्राउज़र पर पृष्ठों की सेवा करते हैं।

यदि आप प्रतीक्षा कर सकते हैं, तो मैं JavaFX के लिए इंतजार करूँगा, क्योंकि यह बिल्डिंग एप्लेट को अधिक घोषणात्मक बना देगा, और प्रतिपादन लाइब्रेरी के प्रारंभिक डाउनलोड पर भी कटौती करेगा।

2

"इसे गतिशील जीयूआई का समर्थन करना चाहिए और सर्वर पक्ष पर जितना संभव हो उतना तर्क होना चाहिए।"

जो आप वर्णन कर रहे हैं वह एक वेब ऐप है। ग्राहक पहले ही लिखा गया है (ब्राउज़र) और एक्सएमएल (आईएसएच) प्रारूप (एक्स) एचटीएमएल है।

अपने स्वयं के एक्सएमएल प्रारूप और अपने स्वयं के ग्राहक का उपयोग करके इस प्रक्रिया को फिर से बनाना संभव होगा, लेकिन मुझे नहीं लगता कि यह आवश्यक या वांछनीय क्यों है।

+0

समस्या यह है कि हमें क्लाइंट डिवाइस (यानी चालान प्रिंटर, कार्ड रीडर) के साथ उपयोग करना है जो ब्राउज़र के माध्यम से हासिल करना मुश्किल है। – MrG

+0

चालान प्रिंटर और कार्ड पाठकों के पास एक जीयूआई है? – Powerlord

+0

क्या आप क्लाइंट डिवाइस तक पहुंचने के लिए एप्लेट का उपयोग नहीं कर सकते हैं? (पाठ्यक्रम की सही सुरक्षा सेटिंग्स के साथ) – Draemon

0

QT Jambi आज़माएं। यह आपको क्यूटी डिजाइनर में फॉर्म लेआउट बनाने और आपके द्वारा वर्णित सॉर्ट की एक डिस्क्रिप्टर फ़ाइल के रूप में निर्यात करने की अनुमति देता है।

+0

यह जेएनआई का उपयोग करता है - क्या यह मैक की तरह कुछ पर उपलब्ध होगा? – jamesh

+0

ट्रॉल टेक के वेब पेज की जांच करें। क्यूटी विंडोज, लिनक्स, ओएसएक्स और यूनिक्स के कुछ अलग-अलग स्वादों पर चलता है। ओटीओएच मुझे नहीं पता कि जंबी ओएसएक्स के लिए उपलब्ध है या नहीं, लेकिन वेबसाइट को कहना चाहिए। – ConcernedOfTunbridgeWells

1

SWT के साथ कुछ ऐसा ही किया है, कि हालांकि (इस मामले में एक आवेदन पत्र मॉडल) एक जीयूआई में एक तार्किक डेटा संरचना परिवर्तित करने के बजाय सीधे जीयूआई को निर्दिष्ट किया गया था। इसने हमें क्लाइंट गुणों (पॉकेटपीसी या डेस्कटॉप) के आधार पर जीयूआई को दोबारा करने की इजाजत दी क्योंकि डेटा मॉडल लेआउट के बारे में तानाशाही के बजाय अर्थपूर्ण था।

लेखन XML पार्सर्स और जेनरेटर सरल है। कुछ लेखन एक इंटरफेस उत्पन्न करने के लिए एक मॉडल से कम सरल है, के रूप में यदि आपने प्रत्येक पर हमेशा की तरह हार्डकोडेड श्रोता से, जीयूआई तत्वों और मॉडल क्षेत्रों के बीच संबंधों है कि वे ताकि आप उन्हें अद्यतन कर सकते हैं जब एक परिवर्तन किया जाता है संबंधित स्टोर करने के लिए की आवश्यकता क्यों है जीयूआई तत्व।

1

जावा सहित विभिन्न भाषाओं के लिए कुछ XUL आधारित टूलकिट हैं। मुझे लगता है कि थिनलेट जावा के लिए एक बहुत ही सरल XUL करता है, लेकिन अन्य होना चाहिए।

1

असल में आप क्लाइंट को क्रमबद्ध रूप भेज रहे हैं, और परिणामस्वरूप डेटा क्रमबद्ध कर रहे हैं। यह Java serialization, यानी, आरएमआई के साथ किया जा सकता है, लेकिन फ़ायरवॉल और आगे इंटरनेट पर आरएमआई के उपयोग को जटिल बना सकते हैं।

यदि आप तार पर HTTP पर XML का उपयोग करना चाहते हैं, तो आप java.beans.XMLEncoder पर एक नज़र डालेंगे। XMLEncoder यूआई घटकों के क्रमिकरण की ओर उन्मुख है, लेकिन यह पीओजेओ को क्रमबद्ध करने के लिए भी काम करता है। ये अनिवार्य रूप से मॉडल ऑब्जेक्ट्स होंगे जो एफएटी क्लाइंट में उपयोगकर्ता इनपुट के साथ आबादी वाले हैं।

1

ऑफ़बिज़ ढांचे पर एक नज़र डालें। इसे इस्तेमाल करता है विगेट्स (xml) और संचालकों के माध्यम से उन्हें coverts आउटपुट को http://ofbiz.apache.org/