تلقائي GWT Clientbundles استنادًا إلى ملفات القرص
-
29-09-2019 - |
سؤال
أنا حاليًا مستخدم جيدًا لـ GWT's عميل بوندليس في تطبيقي. إنه يعمل بشكل جيد ، لكن لديّ عدد كبير من الموارد ويصبح مملاً لإنشاء واجهات Java يدويًا لكل ملف:
@ClientBundle.Source("world_war_ii.txt")
public ExternalTextResource worldWarII();
@ClientBundle.Source("spain.txt")
public ExternalTextResource spain();
@ClientBundle.Source("france.txt")
public ExternalTextResource france();
أرغب في أن أكون قادرًا على (ربما في وقت الترجمة) إدراج كل ملف *.txt في دليل معين ، ثم الوصول إلى وقت التشغيل ، ربما كصفيف ExternalTextResource[]
, ، بدلاً من الاضطرار إلى سردها بشكل صريح في الكود الخاص بي. قد يكون هناك المئات من هذه الموارد ، وتعدادها يدويًا لأن الكود سيكون مؤلمًا للغاية ولا يمكن صيانته.
ال ClientBundle
تقول الوثائق صراحةً أن "توفير تجريد للنظام ملفات" هو غير عازف ، لذلك للأسف يبدو أن هذا يمنع ما أحاول القيام به.
ما هي أفضل طريقة للتعامل مع عدد كبير من الموارد الخارجية التي يجب أن تكون متاحة في وقت التشغيل؟ هل يساعد المولد؟
المحلول 2
انتهى بي الأمر هذه النصيحة: قم بتنفيذ عمليات الملف على الخادم ، ثم قم بإرجاع قائمة بيانات الملف (meta) عبر مكالمة RPC.
يتبين أن هذا بسيط إلى حد ما ، ويسمح لي أيضًا بإعادة مراجع (أسماء الملفات) الخفيفة في القائمة ، والتي أستخدمها لتوزيع أ Tree
جانب العميل ؛ عندما ينقر المستخدم على أ TreeItem
يتم تنزيل محتويات النص الفعلي.
نصائح أخرى
هناك مولد تلقائي إلى عن على CssResource
- ربما يمكنك النظر إلى رمزها وتعديلها لاحتياجاتك؟