Hallo Reza,
Folgendes Skript könnte weiterhelfen um alle Werte einer Checkbox zu selektieren:
import java.io.IOException;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
import de.espirit.firstspirit.access.Connection;
import de.espirit.firstspirit.access.ConnectionManager;
import de.espirit.firstspirit.access.UserService;
import de.espirit.firstspirit.access.editor.value.Option;
import de.espirit.firstspirit.access.project.Project;
import de.espirit.firstspirit.access.store.ElementDeletedException;
import de.espirit.firstspirit.access.store.LockException;
import de.espirit.firstspirit.access.store.Store;
import de.espirit.firstspirit.access.store.IDProvider.UidType;
import de.espirit.firstspirit.access.store.contentstore.Content2;
import de.espirit.firstspirit.access.store.contentstore.ContentStoreRoot;
import de.espirit.firstspirit.access.store.pagestore.Body;
import de.espirit.firstspirit.access.store.pagestore.Page;
import de.espirit.firstspirit.access.store.pagestore.PageStoreRoot;
import de.espirit.firstspirit.access.store.pagestore.Section;
import de.espirit.firstspirit.forms.FormData;
import de.espirit.firstspirit.forms.FormField;
import de.espirit.or.schema.Entity;
String DATASOURCE = "pressreleases";
String SECTIONNAME="textbildhomepageteaser";
String CHECKBOXNAME = "cs_countryList";
String PAGE="mithras_home";
UserService us2 = context.getUserService();
PageStoreRoot pageStore = (PageStoreRoot) us2.getStore(
Store.Type.PAGESTORE, false);
ContentStoreRoot contentStore = (ContentStoreRoot) us2.getStore(
Store.Type.CONTENTSTORE, false);
Content2 myDataSource = contentStore.getContent2ByName(DATASOURCE);
data = myDataSource.getData();
opt = new HashSet();
for (int i = 0; i < data.size(); i++) {
opt.add(data.get(i).getValue("fs_id").toString());
}
Page page = (Page) pageStore.getStoreElement(PAGE, UidType.PAGESTORE);
Section mySec=(Section) page.getChildByName(Section.class, SECTIONNAME);
try {
page.setLock(true);
FormData d = mySec.getFormData();
FormField f = d.get(us2.getProject().getMasterLanguage(), CHECKBOXNAME);
eval = f.get();
f.set(opt);
mySec.setFormData(d);
mySec.save();
page.release();
page.setLock(false);
} catch (LockException e) {
e.printStackTrace();
}
und folgendes um alle Werte einer Checkbox zu deselektieren:
import java.io.IOException;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
import de.espirit.firstspirit.access.Connection;
import de.espirit.firstspirit.access.ConnectionManager;
import de.espirit.firstspirit.access.UserService;
import de.espirit.firstspirit.access.editor.value.Option;
import de.espirit.firstspirit.access.project.Project;
import de.espirit.firstspirit.access.store.ElementDeletedException;
import de.espirit.firstspirit.access.store.LockException;
import de.espirit.firstspirit.access.store.Store;
import de.espirit.firstspirit.access.store.IDProvider.UidType;
import de.espirit.firstspirit.access.store.contentstore.Content2;
import de.espirit.firstspirit.access.store.contentstore.ContentStoreRoot;
import de.espirit.firstspirit.access.store.pagestore.Body;
import de.espirit.firstspirit.access.store.pagestore.Page;
import de.espirit.firstspirit.access.store.pagestore.PageStoreRoot;
import de.espirit.firstspirit.access.store.pagestore.Section;
import de.espirit.firstspirit.forms.FormData;
import de.espirit.firstspirit.forms.FormField;
import de.espirit.or.schema.Entity;
String CHECKBOXNAME = "cs_countryList";
String SECTIONNAME="textbildhomepageteaser";
String PAGE="mithras_home";
UserService us2 = context.getUserService();
PageStoreRoot pageStore = (PageStoreRoot) us2.getStore(
Store.Type.PAGESTORE, false);
Page page = (Page) pageStore.getStoreElement(PAGE, UidType.PAGESTORE);
Section mySec=(Section) page.getChildByName(Section.class, SECTIONNAME);
try {
page.setLock(true);
FormData d = mySec.getFormData();
FormField f = d.get(us2.getProject().getMasterLanguage(), CHECKBOXNAME);
eval = f.get();
f.set(null);
mySec.setFormData(d);
mySec.save();
page.release();
page.setLock(false);
} catch (LockException e) {
e.printStackTrace();
}
Nach Refresh der Seite sollten je nach aufgerufenem Skript die Items alle selektiert oder deselektiert sein. Die Parameter PAGE, DATASOURCE, SECTIONNAME und CHECKBOXNAME müssten ggfls. angepasst werden.
Anmerkung: Die Methode StoreElement.getChildByName(...) ist deprecated.
Freundliche Grüße
Ismail