Löschen-Link in der ItemLanguagesTable wird jetzt nur noch angezeigt, wenn das Item keine Live-Version hat

git-svn-id: https://svn.libreccm.org/ccm/trunk@1424 8810af33-2d31-482b-a856-94f89814c4df
master
jensp 2012-01-04 13:29:59 +00:00
parent 468c5a7f27
commit 2f23a82b3a
1 changed files with 29 additions and 15 deletions

View File

@ -64,9 +64,11 @@ public class ItemLanguagesTable extends DataTable {
super(new LanguagesBuilder(model));
m_model = model;
addColumn("cms.ui.language.header", ContentPage.LANGUAGE, false, new LanguageRenderer());
addColumn("cms.ui.language.header", ContentPage.LANGUAGE, false,
new LanguageRenderer());
addColumn("cms.title", ContentPage.TITLE);
m_deleteColumn = addColumn("cms.ui.action", new ActionCellRenderer(m_model));
m_deleteColumn = addColumn("cms.ui.action", new ActionCellRenderer(
m_model));
setResourceBundle(GlobalizationUtil.getBundleName());
addTableActionListener(new InstanceDeleter());
}
@ -85,8 +87,10 @@ public class ItemLanguagesTable extends DataTable {
}
public DataQuery makeDataQuery(DataTable t, PageState s) {
ContentPage multiLingual = (ContentPage) m_model.getSelectedObject(s);
DataQuery q = SessionManager.getSession().retrieveQuery("com.arsdigita.cms.getBundledItems");
ContentPage multiLingual =
(ContentPage) m_model.getSelectedObject(s);
DataQuery q = SessionManager.getSession().retrieveQuery(
"com.arsdigita.cms.getBundledItems");
q.setParameter("bundleID", multiLingual.getContentBundle().getID());
return q;
}
@ -102,11 +106,14 @@ public class ItemLanguagesTable extends DataTable {
private static class LanguageRenderer implements TableCellRenderer {
public Component getComponent(Table table, PageState state, Object value,
boolean isSelected, Object key,
int row, int column) {
boolean isSelected, Object key,
int row, int column) {
BigDecimal id = (BigDecimal) key;
String target = ContentItemPage.getRelativeItemURL(id, ContentItemPage.AUTHORING_TAB);
return new Link(new Label(LanguageUtil.getLangFull((String) value)), target);
String target =
ContentItemPage.getRelativeItemURL(id,
ContentItemPage.AUTHORING_TAB);
return new Link(new Label(LanguageUtil.getLangFull((String) value)),
target);
}
}
@ -115,7 +122,8 @@ public class ItemLanguagesTable extends DataTable {
*/
private static class ActionCellRenderer implements TableCellRenderer {
private static final Logger logger = Logger.getLogger(ActionCellRenderer.class);
private static final Logger logger =
Logger.getLogger(ActionCellRenderer.class);
private static Label s_noAction;
private static Label s_primary;
private static ControlLink s_link;
@ -124,9 +132,11 @@ public class ItemLanguagesTable extends DataTable {
logger.debug("Static initializer is starting...");
s_noAction = new Label(" ", false);
s_noAction.lock();
s_primary = new Label(GlobalizationUtil.globalize("cms.ui.primary_instance"), false);
s_primary = new Label(GlobalizationUtil.globalize(
"cms.ui.primary_instance"), false);
s_primary.lock();
s_link = new ControlLink(new Label(GlobalizationUtil.globalize("cms.ui.delete")));
s_link = new ControlLink(new Label(GlobalizationUtil.globalize(
"cms.ui.delete")));
s_link.setConfirmation("Permanently delete this item?"); // XXX G11N ?
logger.debug("Static initalizer finished.");
}
@ -137,8 +147,8 @@ public class ItemLanguagesTable extends DataTable {
}
public Component getComponent(Table table, PageState state, Object value,
boolean isSelected, Object key,
int row, int column) {
boolean isSelected, Object key,
int row, int column) {
if (m_model.getSelectedKey(state).equals(key)) {
return s_noAction;
} else {
@ -146,10 +156,13 @@ public class ItemLanguagesTable extends DataTable {
BigDecimal id = new BigDecimal(key.toString());
OID oid = new OID(ContentPage.BASE_DATA_OBJECT_TYPE, id);
try {
ContentPage item = (ContentPage) DomainObjectFactory.newInstance(oid);
ContentPage item = (ContentPage) DomainObjectFactory.
newInstance(oid);
if (item.getLanguage().equals(
item.getContentBundle().getDefaultLanguage())) {
return s_primary;
} else if (item.getLiveVersion() != null) {
return s_noAction;
}
} catch (com.arsdigita.domain.DataObjectNotFoundException ex) {
return s_noAction;
@ -174,7 +187,8 @@ public class ItemLanguagesTable extends DataTable {
OID oid = new OID(ContentPage.BASE_DATA_OBJECT_TYPE, id);
try {
ContentPage item = (ContentPage) DomainObjectFactory.newInstance(oid);
ContentPage item =
(ContentPage) DomainObjectFactory.newInstance(oid);
ContentBundle bundle = item.getContentBundle();
bundle.removeInstance(item);
item.delete();