--- Em zope-pt@yahoogrupos.com.br, "Juracy Filho" <[EMAIL PROTECTED]> escreveu
>
> Eu tive este problema há algum tempo atrás e resolvi, porém, estou sem
> este código a disposição no momento (na segunda posso verificar), não
> lembro ao certo se resolvi usando BaseClass ou nenhuma super-classe.
> 
> Quanto ao ArchGenXML, se você quiser que ele gere uma classe que não
> herde de nenhuma super-classe você deve usar a tagged value:
> base_class na classe, assim:
> 
> base_class = 0
> 
> Olhe em:
http://plone.org/documentation/tutorial/archgenxml-getting-started/classes
> 
> Simple Derivation
> 
>  All content types in Archetypes are derived from one of the base
> classes - BaseContent, BaseFolder, OrderedBaseFolder and so on. If you
> wish to turn this off, for example because the base class is being
> inherited from a parent class, you can set the base_class tagged value
> to 0.

Opa, ótima dica esta do base_class = 0. 

Fazer com que a classe abstrata não herde de nenhuma classe
(BaseContent) resolveu o problema. Se este for o tratamento esperado
mesmo, o AGX não deveria omitir a herança de BaseContent quando a
classe fosse abstrata?

[]s
Daniel

> 
> On 7/21/06, Daniel Vainsencher <[EMAIL PROTECTED]> wrote:
> > --- Em zope-pt@yahoogrupos.com.br, "Juracy Filho" <[EMAIL PROTECTED]>
escreveu
> > >
> > > Daniel, não pude testar para vê se realmente funciona, mas acredito
> > que a
> > > solução do seu problema seria herdar Questao de BaseClass e não de
> > > BaseContent.
> > >
> >
> > Juracy, a sua sugestão não funcionou mas acho que lançou uma luz na
> > direção correta.
> >
> > Troquei BaseContent por BaseClass mas ocorreu um  erro ao instalar o
> > produto no Zope (na inicialização da instância) porque a classe
> > BaseClass não foi encontrada. Procurei por exemplos em outros produtos
> > e não encontrei referência à bendita.
> >
> > No entanto encontrei esta referência em [1] :
> >
> > "By marking your class as abstract in your model (usually a separate
> > tick-box), you are signifying that it will not be added as a content
> > type. Such classes are useful as mixin parents and as abstract base
> > classes for more complex content types, and will not have the standard
> > Archetypes registration machinery, factory type information or derive
> > from BaseClass."
> >
> > Ela sugere que classes abstratas não devem herdar de BaseClass (que
> > interpretei como BaseContent). Fiz o teste excluindo BaseClass como
> > super classe de Questão e funcionou.
> >
> > Bem, se isto que fiz estiver correto então o problema estaria no
> > ArchgenXML que gera classes abstratas herdando de BaseContent. Será
> > isto mesmo?
> >
> > [1]
> >
http://plone.org/documentation/tutorial/archgenxml-getting-started/tutorial-all-pages
> >
> > []s
> > Daniel
> >
> > > On 7/21/06, Daniel Vainsencher <[EMAIL PROTECTED]> wrote:
> > > >
> > > > --- Em zope-pt@yahoogrupos.com.br, "Luciano Ramalho"
<[EMAIL PROTECTED]>
> > > > escreveu
> > > > >
> > > > > Daniel, talvez algum guru mais esperto que eu saiba te dar a
> > > > > solução, mas
> > > > > quero tentar te ajudar dando um toque sobre terminologia:
quando se
> > > > > fala de
> > > > > pai e filho em OO isso pode ser ambíguo.
> > > > >
> > > > > A maioria das vezes, o pai é a super-classe e o filho é a
> > > > > sub-classe. Mas
> > > > > pode ser também que se trate de uma relação de composição: o pai
> > é > um
> > > > > container e o filho é o objeto contido. No Zope2, com o
mecanismo
> > > > > de
> > > > > aquisição, essa possível confusão fica ainda mais presente. Mas
> > > > > note que é
> > > > > fácil separar, desde que fique claro que herança é uma
relação de
> > > > > pai-filho
> > > > > entre CLASSES, e aquisição é uma relação entre OBJETOS
(instâncias
> > > > > de
> > > > > classes).
> > > > >
> > > > > Isto posto, no problema que você relata você fala de "objeto pai
> > > > > (Questão)".
> > > > > Mas se Questao é uma classe abstrata, então ela não tem
instâncias
> > > > > por
> > > > > definição! Acho que você está confundindo os conceitos.
> > > > >
> > > >
> > > > Corretíssima a observação. Do modo como escrevi está impreciso
> > > > e incorreto.
> > > >
> > > > > Tente reformular a descrição do seu problema sendo mais
preciso na
> > > > > distinção
> > > >
> > > > Aí vai:
> > > >
> > > > Classes:
> > > >    - Questão - Classe abstrata e superclasse de MultiplaEscolha;
> > > >    - MultiplaEscolha - Especialização de Questão, relação de
> > > >                        composição (contém) com Alternativa e,
> > > >                        em função da composição, também herda de
> > > >                        BaseFolder.
> > > >    - Alternativa - Relação de composição (está contida) com
> > > >                    MultiplaEscolha
> > > >
> > > > Para facilitar postei o código das classes em
> > > > http://paste.plone.org/6063 (Obrigado pela dica Jean)
> > > >
> > > > A minha intenção era colocar alternativas (instâncias de
Alternativa)
> > > > dentro de questões de multipla escolha (instâncias de
> > MultiplaEscolha).
> > > >
> > > > O que ocorreu foi que, embora  a classe MultiplaEscolha de
fato  herde
> > > > de BaseFolder, não se comporta como uma  pasta. Embora consiga
forçar
> > > > a criação de alternativas  acessando o método diretamente
> > > >
http://localhost:8090/remo/questao1/createObject?type_name=Alternativa
> > > > as opções de adição de alternativa e listagem de conteúdo não
aparecem
> > > > na interface do Plone. É como se MultiplaEscolha não fosse
subclasse
> > > > de BaseFolder.
> > > >
> > > > Consegui contornar provisoriamente forçando a herança entre a
classe
> > > > abstrata Questao e BaseFolder. No entanto, esta modelagem não
> > > > representa corretamente o que pretendo expressar pois as outras
> > > > subclasses de Questao não são Pastas. (ex: Redacao,
Dissertativa, etc)
> > > >
> > > > Desculpem pela descrição descuidada anterior. Espero que tenha
> > melhorado.
> > > >
> > > > > entre as relações. Aposto que ao fazer esta reformulação
você vai
> > > > encontrar
> > > > > sozinho a causa do problema!
> > > > >
> > > >
> > > > Infelizmente ainda não. ;-)
> > > >
> > > > Obrigado pelos toques.
> > > >
> > > > []s
> > > > Daniel
> > > >
> > > > > [ ]s
> > > > > Luciano
> > > > >
> > > > >
> > > > > On 7/20/06, Daniel Vainsencher Maya Monteiro <[EMAIL PROTECTED]>
> > wrote:
> > > > > >
> > > > > > Uma classe que herda de BaseFolder e de uma classe abstrata
> > > > > > que não é Folder parece não refletir o comportamento de um
Folder.
> > > > > > Nossa! Que frase horrível! Trocando em miúdos:
> > > > > > Criei  as classes:
> > > > > >
> > > > > > - Questao - classe abstrata não Folder,
> > > > > > - MultiplaEscolha - herda de Questao e é composta por
alternativas
> > > > > > - Alternativa
> > > > > >
> > > > > > No  entanto, Ao criar um objeto MultiplaEscolha as opções de
> > > > > > adição de conteúdo referem-se à pasta pai de MultiplaEscolha:
> > > > > >
> > > > > > O que ocorre:
> > > > > >   - Alternativa não  está disponível para adição, apenas
os Tipos
> > > > > >     Permitidos na pasta pai
> > > > > >   - Ao forçar a criação da Alternativa com
> > > > > >
> > > >
http://localhost:8090/remo/questao1/createObject?type_name=Alternativa
> > > > > >     consigo criar Alternativas sem erros;
> > > > > >   - O ícone do Tipo MultiplaEscolha é igual ao da Pasta o que
> > > > > >     indica que é de fato uma pasta
> > > > > >   - Não aparece a action Conteúdo, comum a todas as pastas
> > > > > >
> > > > > > Parece que as verificações para adição são feitas sobre o
> > objeto pai
> > > > > > (Questao) o que não paree correto num ambiente  com  herança
> > múltipla.
> > > > > >
> > > > > > O que acham? (Se é que me fiz entender ;-) )
> > > > > >
> > > > > > []s
> > > > > > Daniel
> > > > > >
> > > > > >
> > > > >
> > > >
> > > >
> > >
> > >
> > > --
> > > Juracy Filho
> > >
> >
> >
> >
> >
> >
> >
> > Para enviar uma mensagem: zope-pt@yahoogrupos.com.br
> > Para desistir envie uma mensagem em branco para:
[EMAIL PROTECTED]
> > Links do Yahoo! Grupos
> >
> >
> >
> >
> >
> >
> >
> >
> 
> 
> 
> -- 
> Juracy Filho
>






Para enviar uma mensagem: zope-pt@yahoogrupos.com.br
Para desistir envie uma mensagem em branco para: [EMAIL PROTECTED] 
Links do Yahoo! Grupos

<*> Para visitar o site do seu grupo na web, acesse:
    http://br.groups.yahoo.com/group/zope-pt/

<*> Para sair deste grupo, envie um e-mail para:
    [EMAIL PROTECTED]

<*> O uso que você faz do Yahoo! Grupos está sujeito aos:
    http://br.yahoo.com/info/utos.html

 



Responder a