Return-Path: Delivered-To: apmail-myfaces-users-archive@www.apache.org Received: (qmail 48005 invoked from network); 10 Jun 2010 08:13:27 -0000 Received: from unknown (HELO mail.apache.org) (140.211.11.3) by 140.211.11.9 with SMTP; 10 Jun 2010 08:13:27 -0000 Received: (qmail 90757 invoked by uid 500); 10 Jun 2010 08:13:26 -0000 Delivered-To: apmail-myfaces-users-archive@myfaces.apache.org Received: (qmail 90669 invoked by uid 500); 10 Jun 2010 08:13:24 -0000 Mailing-List: contact users-help@myfaces.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: "MyFaces Discussion" Delivered-To: mailing list users@myfaces.apache.org Received: (qmail 90661 invoked by uid 99); 10 Jun 2010 08:13:24 -0000 Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 10 Jun 2010 08:13:24 +0000 X-ASF-Spam-Status: No, hits=0.3 required=10.0 tests=AWL,RCVD_IN_DNSWL_NONE,SPF_HELO_PASS,SPF_NEUTRAL X-Spam-Check-By: apache.org Received-SPF: neutral (athena.apache.org: local policy) Received: from [212.227.17.10] (HELO moutng.kundenserver.de) (212.227.17.10) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 10 Jun 2010 08:13:18 +0000 Received: from [192.168.1.185] (pd9569bb2.dip0.t-ipconnect.de [217.86.155.178]) by mrelayeu.kundenserver.de (node=mreu0) with ESMTP (Nemesis) id 0M371n-1PFH1y0O1f-00sXyY; Thu, 10 Jun 2010 10:12:54 +0200 Message-ID: <4C109E66.1090009@flexsecure.de> Date: Thu, 10 Jun 2010 10:12:22 +0200 From: Simon Kulessa User-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.1; de; rv:1.9.1.9) Gecko/20100317 Lightning/1.0b1 Thunderbird/3.0.4 MIME-Version: 1.0 To: MyFaces Discussion Subject: Re: [Trinidad] concurrent access to a sortable table References: <4C0F7609.4000208@flexsecure.de> <0b3b01cb086a$408fe9c0$c1afbd40$@millman@mizar.com> In-Reply-To: <0b3b01cb086a$408fe9c0$c1afbd40$@millman@mizar.com> Content-Type: multipart/signed; protocol="application/pkcs7-signature"; micalg=sha1; boundary="------------ms050406090601090808040901" X-Provags-ID: V01U2FsdGVkX1/rUWlffBzQ8Goqchu/aJjnVGLsX1IQUy7mIEE xVfKQRR7GUufc8Zf3JcyVuc/RrKnR/JUrSUG+rLVA1WEnOJYqU 6h7Nmq9vQDvdg958oKieaJAr1SxyLbG --------------ms050406090601090808040901 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: quoted-printable Hello Mark, thanks for your answer. I think the code line you mentioned describes the default behaviour of=20 the framework. So the problem with the concurrent access would not be=20 solved, because the framework would still use the integer indices. Best regards, Simon Kulessa. Am 10.06.2010 08:57, schrieb Mark Millman: > I've done the following to create SortableModel from Lists > > model =3D (SortableModel) > org.apache.myfaces.trinidad.model.ModelUtils.toCollectionModel((Object)= list) > ; > > It's not elegant but it seems to work well enough. > > Mark > > -----Original Message----- > From: Simon Kulessa [mailto:kulessa@flexsecure.de] > Sent: Wednesday, June 09, 2010 4:08 AM > To: users@myfaces.apache.org > Subject: [Trinidad] concurrent access to a sortable table > > Hello everyone, > > I am developing a web application for my company based on JSF 1.2.14 an= d > Trinidad 1.2.13. In this application we have different views > that are displayed with the help of the tag. > > We discovered recently that the default data model > does not support concurrent access to the data. > > Source: > http://myfaces.apache.org/trinidad/trinidad-api/apidocs/org/apache/myfa= ces/t > rinidad/model/CollectionModel.html > > -- > The only solution to this problem i have discovered so far, is that > we have to implement our own CollectionModel to support unique row keys= =2E > > Question 1: Is there really no other way to support concurrent access? > Question 2: Does a tutorial or a discription exist, how the framework > uses the CollectionModel? Or a tutorial for implementing your own > CollectionModel ? > > -- > I have tried to implement a class that extends the CollectionModel clas= s > and implemented the necessary methods. > > For example: I used the setWrappedData(Object o) method to save the dat= a > as an attribute inside the CollectionModel and to generate an index to > map the uniqueKey to the specified row. > > Request 3: It would be helpfull if someone can provide a sample for an > efficient implementation of a CollectionModel ? > > -- > To return the CollectionModel to the Framework I changed the return typ= e > of the getData method () from the > previously used List to CollectionModel, which now wrapps the > List. > > The bad thing is, that the framework calls this method three times > during the render phase. That means I currently need to create/convert > the CollectionModel and the index for the mapping three times. > > Question 4: Is there a way to prevent this? > Maybe an additional check can be added to verify in which render state > the call is made? > > -- > Another problem is that our data table needs to support sorting. > The default CollectionModel does not support sorting and the > SortableCollectionMethod does not seem to be expandable > (since it uses Integer's as rowKeys). > > The solution seems to override the "isSortable, getSortingCriteria, > setSortingCriteria" methods of the CollectionModel > and implement the sorting feature on your own. > > Question 5: Again, is that really the way you have to do it? > Request 6: An efficient sample of an implementation would be nice. > > -- > > Any help is appreciated. > If necessary I could provide my sample implementation. > > > Best regards, > Simon Kulessa. --=20 Diplom Informatiker Simon Kulessa FlexSecure GmbH Industriestr. 12 D - 64297 Darmstadt Tel: +49 (0) 6151 501 23-15 Fax: +49 (0) 6151 501 23-19 E-Mail:kulessa@flexsecure.de Internet:www.flexsecure.de Gesch=E4ftsf=FChrer: Erwin Stallenberger, Markus Ruppert Amtsgericht Darmstadt HRB 8036 Umsatzsteuernummer: DE 214745269 --------------ms050406090601090808040901 Content-Type: application/pkcs7-signature; name="smime.p7s" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="smime.p7s" Content-Description: S/MIME Cryptographic Signature MIAGCSqGSIb3DQEHAqCAMIACAQExCzAJBgUrDgMCGgUAMIAGCSqGSIb3DQEHAQAAoIIM8TCC BDEwggMZoAMCAQICAQUwDQYJKoZIhvcNAQEFBQAwMzELMAkGA1UEBhMCREUxEjAQBgNVBAoM CUZsZXhHcm91cDEQMA4GA1UEAwwHUm9vdCBDQTAeFw0wODA5MTYxMjM5MzZaFw0xODA5MTYx MTMzNDRaMC8xCzAJBgNVBAYTAkRFMRMwEQYDVQQKDApGbGV4U2VjdXJlMQswCQYDVQQDDAJD QTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAJ6U466suLGjkNugEgFReNFXRWbU 5N6P6/Or2gwSuCcBFmO8QBNC3h2oQQlUqmLbxM7b2I5/4db3Dqjc7Xu99h1CiG8WER6O4/N1 7NpldYzjn3DvDiRAKhS4bBEhHnm+WL3hI6MC+hB4k076qD8QfQNaLDThmqI4R5cnsVUrAcnL RZgLtYpOUfQ4UdSy05orihdVfZBEUL0L+Qit263AtCVHRYVhK02NOYtkV5+eLCh1xa/H8R5X Ai/CqxmQslPZamKC9rIRoO4FfARdalvT3F04KgxnrSOdr6ooMsEIoX6OP4Km8hsSgpOIn2d3 lmEIVwdz+o12ffEYklUbbEtBOvcCAwEAAaOCAVIwggFOMA4GA1UdDwEB/wQEAwIBBjAdBgNV HQ4EFgQUfFdhtxho/5c2Jq2VooVYS74VOTgwHwYDVR0jBBgwFoAUV3I7Gmi0kmW8AxWfV2KI +5ecTkQwVAYDVR0gBE0wSzBJBgorBgEEAYH1fQEBMDswOQYIKwYBBQUHAgEWLWh0dHA6Ly93 d3cuZmxleHNlY3VyZS5kZS9GQ0EvRkdDQS1Qb2xpY3kuaHRtbDCBkQYDVR0fBIGJMIGGMIGD oIGAoH6GJmh0dHA6Ly9mbGV4c2VjdXJlLmV1Ojk0MDYvRkNBL0ZHQ0EuY3JshlRsZGFwOi8v ZmxleHNlY3VyZS5ldTo5NDAwL2NuPUNSTCxkYz1mbGV4Z3JvdXAsZGM9ZGU/Y2VydGlmaWNh dGVSZXZvY2F0aW9uTGlzdDtiaW5hcnkwEgYDVR0TAQH/BAgwBgEB/wIBADANBgkqhkiG9w0B AQUFAAOCAQEAcLT6gNXSO+i9ssXRgWb6YSMBfjV8Y9pvVVZmu8zjwwAodW731K4IdhQIhk4G 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 ZTAOBgNVHQ8BAf8EBAMCA/gwHQYDVR0OBBYEFLqJx/Sa4n/DiTjwKjW2x6crViKoMB8GA1Ud IwQYMBaAFHxXYbcYaP+XNiatlaKFWEu+FTk4MBEGCWCGSAGG+EIBAQQEAwIFoDBUBgNVHSAE TTBLMEkGCisGAQQBgfV9AQIwOzA5BggrBgEFBQcCARYtaHR0cDovL3d3dy5mbGV4c2VjdXJl LmRlL0ZDQS9GU0NBLVBvbGljeS5odG1sMIGSBgNVHR8EgYowgYcwgYSggYGgf4YmaHR0cDov L2ZsZXhzZWN1cmUuZXU6OTQwNi9GQ0EvRlNDQS5jcmyGVWxkYXA6Ly9mbGV4c2VjdXJlLmV1 Ojk0MDAvY249Q1JMLGRjPWZsZXhzZWN1cmUsZGM9ZGU/Y2VydGlmaWNhdGVSZXZvY2F0aW9u TGlzdDtiaW5hcnkwDQYJKoZIhvcNAQEFBQADggEBABzvoql3bSamdGy+YiDTd6T+w9m/30I/ xIpExxwENDMBIFbswzktK0XmeV1mQ5aHvEqfFUTXMpj6vQxqZ42sHim5QPhRLvMOD8ReM7Pa A2lxvAVbKoijcPM2aurIbQSKbBUjBJ0qBuXD4PrPJ4XBC/ND2pIz/+77aNEReTejwL8kpEtP 0U2cz9kBZ7oyIhzmQDkl0U1cNvQ+kBgE4WxenaN7mboMg2uGp241h80Lhbo979hgInW9nIb8 MxvJ6Qjxh/oVACv2YMzkbeb8qp3gSrJvgrGPLmzhML7yiNaXT41aJ5GhQ5kz7wBXyGTf46dB 8fjRsNMJkxtJMEnEPW7uG0cxggKpMIICpQIBATA0MC8xCzAJBgNVBAYTAkRFMRMwEQYDVQQK DApGbGV4U2VjdXJlMQswCQYDVQQDDAJDQQIBNDAJBgUrDgMCGgUAoIIBSjAYBgkqhkiG9w0B CQMxCwYJKoZIhvcNAQcBMBwGCSqGSIb3DQEJBTEPFw0xMDA2MTAwODEyMjJaMCMGCSqGSIb3 DQEJBDEWBBQ4UxgrMjKssrDiV55kI9FpQDlkFTBDBgkrBgEEAYI3EAQxNjA0MC8xCzAJBgNV BAYTAkRFMRMwEQYDVQQKDApGbGV4U2VjdXJlMQswCQYDVQQDDAJDQQIBNDBFBgsqhkiG9w0B CRACCzE2oDQwLzELMAkGA1UEBhMCREUxEzARBgNVBAoMCkZsZXhTZWN1cmUxCzAJBgNVBAMM AkNBAgE0MF8GCSqGSIb3DQEJDzFSMFAwCwYJYIZIAWUDBAECMAoGCCqGSIb3DQMHMA4GCCqG SIb3DQMCAgIAgDANBggqhkiG9w0DAgIBQDAHBgUrDgMCBzANBggqhkiG9w0DAgIBKDANBgkq hkiG9w0BAQEFAASCAQB+ZI7arKE/f0rSzN1414zyUpWgAQFm3OhFS1EQXLjJu67pZ7wF8Ee2 xxSyyvegDGSPJtI7A3b3f1nqeg2pbU4szKaPEZTP6GhAIQMqye8CRYL4DXZ7V8qcVe6GZ3AG 8SnN+CfwX7k4RI1cao1MSPPl3U37eYi7xEz0TIFfJmgRtZW32rdPlPmJ6vNo1YibAu8paX7d KubtE36TxyZzeX2JHpmDCimQgd3X2VDrDAcA46WdTHAvo17enujek0OfKV7eI/5D6tJmjx6g 01kUN45xFzdkrpcBuXacfgg1qCOmas4CGxCl0JxhviPH5Qkeb4AQagjgP94yfp+OsiVYaWz6 AAAAAAAA --------------ms050406090601090808040901--