From b625ac751392117716f43b5abdc23e2199484cb1 Mon Sep 17 00:00:00 2001 From: izabel <izabel> Date: Tue, 23 Jun 2009 21:12:08 +0000 Subject: [PATCH] [LMS-960] update file format description SVN: 11512 --- .../web/client/ICommonClientService.java | 6 +++ .../web/client/ICommonClientServiceAsync.java | 5 +++ .../ui/data/FileFormatTypeGrid.java | 41 +++++++++++++++++++ .../web/server/CommonClientService.java | 13 ++++++ .../openbis/generic/server/CommonServer.java | 17 ++++++++ .../generic/server/CommonServerLogger.java | 7 ++++ .../openbis/generic/shared/ICommonServer.java | 9 ++++ 7 files changed, 98 insertions(+) diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/ICommonClientService.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/ICommonClientService.java index 9a224c76bc3..5d66f1ce728 100644 --- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/ICommonClientService.java +++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/ICommonClientService.java @@ -41,6 +41,7 @@ import ch.systemsx.cisd.openbis.generic.client.web.client.dto.VocabularyTermWith import ch.systemsx.cisd.openbis.generic.client.web.client.exception.UserFailureException; import ch.systemsx.cisd.openbis.generic.shared.basic.IEntityInformationHolder; import ch.systemsx.cisd.openbis.generic.shared.basic.TechId; +import ch.systemsx.cisd.openbis.generic.shared.basic.dto.AbstractType; import ch.systemsx.cisd.openbis.generic.shared.basic.dto.DataSetSearchCriteria; import ch.systemsx.cisd.openbis.generic.shared.basic.dto.DataSetType; import ch.systemsx.cisd.openbis.generic.shared.basic.dto.DataType; @@ -527,4 +528,9 @@ public interface ICommonClientService extends IClientService */ public String getTemplate(EntityKind kind, String type, boolean autoGenerate); + /** + * Updates the file format. + */ + public void updateFileFormatType(AbstractType type); + } diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/ICommonClientServiceAsync.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/ICommonClientServiceAsync.java index 469e4a7df28..420dcef51d2 100644 --- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/ICommonClientServiceAsync.java +++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/ICommonClientServiceAsync.java @@ -454,4 +454,9 @@ public interface ICommonClientServiceAsync extends IClientServiceAsync public void getTemplate(EntityKind kind, String type, boolean autoGenerate, AsyncCallback<String> callback); + /** + * @see ICommonClientService#updateFileFormatType(AbstractType type) + */ + public void updateFileFormatType(AbstractType type, AsyncCallback<Void> registrationCallback); + } diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/data/FileFormatTypeGrid.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/data/FileFormatTypeGrid.java index 322a93ffbbf..b7ef8d2d103 100644 --- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/data/FileFormatTypeGrid.java +++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/client/application/ui/data/FileFormatTypeGrid.java @@ -25,6 +25,7 @@ import com.extjs.gxt.ui.client.event.SelectionListener; import com.extjs.gxt.ui.client.event.ToolBarEvent; import com.extjs.gxt.ui.client.widget.Window; import com.extjs.gxt.ui.client.widget.button.Button; +import com.extjs.gxt.ui.client.widget.form.TextField; import com.extjs.gxt.ui.client.widget.toolbar.AdapterToolItem; import com.extjs.gxt.ui.client.widget.toolbar.TextToolItem; import com.google.gwt.user.client.rpc.AsyncCallback; @@ -41,9 +42,11 @@ import ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.columns import ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.entity_type.AddTypeDialog; import ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.grid.AbstractSimpleBrowserGrid; import ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.grid.IDisposableComponent; +import ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.widget.AbstractRegistrationDialog; import ch.systemsx.cisd.openbis.generic.client.web.client.application.ui.widget.ConfirmationDialog; import ch.systemsx.cisd.openbis.generic.client.web.client.application.util.IDelegatedAction; import ch.systemsx.cisd.openbis.generic.client.web.client.application.util.StringUtils; +import ch.systemsx.cisd.openbis.generic.client.web.client.application.util.lang.StringEscapeUtils; import ch.systemsx.cisd.openbis.generic.client.web.client.dto.DefaultResultSetConfig; import ch.systemsx.cisd.openbis.generic.client.web.client.dto.IColumnDefinition; import ch.systemsx.cisd.openbis.generic.client.web.client.dto.ResultSet; @@ -102,6 +105,19 @@ public class FileFormatTypeGrid extends AbstractSimpleBrowserGrid<AbstractType> }); createItem.setId(ADD_NEW_TYPE_BUTTON_ID); pagingToolbar.add(createItem); + Button editButton = + createSelectedItemButton(viewContext.getMessage(Dict.EDIT_TYPE_BUTTON), + new ISelectedEntityInvoker<BaseEntityModel<AbstractType>>() + { + + public void invoke(BaseEntityModel<AbstractType> selectedItem) + { + AbstractType entityType = selectedItem.getBaseObject(); + createEditEntityTypeDialog(entityType).show(); + } + + }); + pagingToolbar.add(new AdapterToolItem(editButton)); Button deleteButton = createDeleteButton(viewContext); enableButtonOnSelectedItems(deleteButton); @@ -166,6 +182,31 @@ public class FileFormatTypeGrid extends AbstractSimpleBrowserGrid<AbstractType> return deleteButton; } + private Window createEditEntityTypeDialog(final AbstractType type) + { + final String code = type.getCode(); + String title = + viewContext.getMessage(Dict.EDIT_TYPE_TITLE_TEMPLATE, type.getDescription(), code); + return new AbstractRegistrationDialog(viewContext, title, postRegistrationCallback) + { + private final TextField<String> descriptionField; + { + descriptionField = createDescriptionField(); + descriptionField + .setValue(StringEscapeUtils.unescapeHtml(type.getDescription())); + addField(descriptionField); + + } + + @Override + protected void register(AsyncCallback<Void> registrationCallback) + { + type.setDescription(descriptionField.getValue()); + viewContext.getService().updateFileFormatType(type, registrationCallback); + } + }; + } + final class RefreshCallback extends AbstractAsyncCallback<Void> { private RefreshCallback(IViewContext<?> viewContext) diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/server/CommonClientService.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/server/CommonClientService.java index 3dad37d731d..2cd7cf15c79 100644 --- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/server/CommonClientService.java +++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/client/web/server/CommonClientService.java @@ -91,6 +91,7 @@ import ch.systemsx.cisd.openbis.generic.shared.ICommonServer; import ch.systemsx.cisd.openbis.generic.shared.IServer; import ch.systemsx.cisd.openbis.generic.shared.basic.IEntityInformationHolder; import ch.systemsx.cisd.openbis.generic.shared.basic.TechId; +import ch.systemsx.cisd.openbis.generic.shared.basic.dto.AbstractType; import ch.systemsx.cisd.openbis.generic.shared.basic.dto.DataSetSearchCriteria; import ch.systemsx.cisd.openbis.generic.shared.basic.dto.DataSetType; import ch.systemsx.cisd.openbis.generic.shared.basic.dto.DataSetTypePropertyType; @@ -1629,4 +1630,16 @@ public final class CommonClientService extends AbstractClientService implements } } + public void updateFileFormatType(AbstractType type) + { + try + { + final String sessionToken = getSessionToken(); + commonServer.updateFileFormatType(sessionToken, type); + } catch (UserFailureException ex) + { + throw UserFailureExceptionTranslator.translate(ex); + } + } + } diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/CommonServer.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/CommonServer.java index 275ff10e9d7..d1f15b61d90 100644 --- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/CommonServer.java +++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/CommonServer.java @@ -60,6 +60,7 @@ import ch.systemsx.cisd.openbis.generic.shared.ICommonServer; import ch.systemsx.cisd.openbis.generic.shared.basic.BasicEntityInformationHolder; import ch.systemsx.cisd.openbis.generic.shared.basic.IEntityInformationHolder; import ch.systemsx.cisd.openbis.generic.shared.basic.TechId; +import ch.systemsx.cisd.openbis.generic.shared.basic.dto.AbstractType; import ch.systemsx.cisd.openbis.generic.shared.basic.dto.DataSetSearchCriteria; import ch.systemsx.cisd.openbis.generic.shared.basic.dto.DataSetType; import ch.systemsx.cisd.openbis.generic.shared.basic.dto.EntityType; @@ -1123,4 +1124,20 @@ public final class CommonServer extends AbstractServer<ICommonServer> implements return result; } + public void updateFileFormatType(String sessionToken, AbstractType type) + { + checkSession(sessionToken); + try + { + IFileFormatTypeDAO dao = getDAOFactory().getFileFormatTypeDAO(); + FileFormatTypePE typePE = dao.tryToFindFileFormatTypeByCode(type.getCode()); + typePE.setDescription(type.getDescription()); + dao.createOrUpdate(typePE); + } catch (final DataAccessException ex) + { + throw createUserFailureException(ex); + } + + } + } diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/CommonServerLogger.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/CommonServerLogger.java index c4d18f2bd9e..219b1b65b1b 100644 --- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/CommonServerLogger.java +++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/server/CommonServerLogger.java @@ -27,6 +27,7 @@ import ch.systemsx.cisd.authentication.ISessionManager; import ch.systemsx.cisd.openbis.generic.shared.ICommonServer; import ch.systemsx.cisd.openbis.generic.shared.basic.IEntityInformationHolder; import ch.systemsx.cisd.openbis.generic.shared.basic.TechId; +import ch.systemsx.cisd.openbis.generic.shared.basic.dto.AbstractType; import ch.systemsx.cisd.openbis.generic.shared.basic.dto.DataSetSearchCriteria; import ch.systemsx.cisd.openbis.generic.shared.basic.dto.DataSetType; import ch.systemsx.cisd.openbis.generic.shared.basic.dto.EntityType; @@ -557,4 +558,10 @@ final class CommonServerLogger extends AbstractServerLogger implements ICommonSe } + public void updateFileFormatType(String sessionToken, AbstractType type) + { + logTracking(sessionToken, "update_file_format_type", "CODE(%s)", type.getCode()); + + } + } diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/ICommonServer.java b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/ICommonServer.java index c33aacb0d75..7522659be76 100644 --- a/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/ICommonServer.java +++ b/openbis/source/java/ch/systemsx/cisd/openbis/generic/shared/ICommonServer.java @@ -38,6 +38,7 @@ import ch.systemsx.cisd.openbis.generic.shared.authorization.validator.MatchingE import ch.systemsx.cisd.openbis.generic.shared.authorization.validator.ProjectValidator; import ch.systemsx.cisd.openbis.generic.shared.basic.IEntityInformationHolder; import ch.systemsx.cisd.openbis.generic.shared.basic.TechId; +import ch.systemsx.cisd.openbis.generic.shared.basic.dto.AbstractType; import ch.systemsx.cisd.openbis.generic.shared.basic.dto.DataSetSearchCriteria; import ch.systemsx.cisd.openbis.generic.shared.basic.dto.DataSetType; import ch.systemsx.cisd.openbis.generic.shared.basic.dto.EntityType; @@ -682,4 +683,12 @@ public interface ICommonServer extends IServer public List<String> getTemplateColumns(String sessionToken, EntityKind kind, String type, boolean autoGenerate); + /** + * Updates file format type. + */ + @Transactional + @RolesAllowed(RoleSet.INSTANCE_ADMIN) + @DatabaseUpdateModification(value = ObjectKind.FILE_FORMAT_TYPE) + public void updateFileFormatType(String sessionToken, AbstractType type); + } -- GitLab