--- 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 > > > > > 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