001 /* 002 Copyright (C) 2003 Laurent Martelli <laurent@aopsys.com> 003 004 This program is free software; you can redistribute it and/or modify 005 it under the terms of the GNU Lesser General Public License as 006 published by the Free Software Foundation; either version 2 of the 007 License, or (at your option) any later version. 008 009 This program is distributed in the hope that it will be useful, but 010 WITHOUT ANY WARRANTY; without even the implied warranty of 011 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 012 Lesser General Public License for more details. 013 014 You should have received a copy of the GNU Lesser General Public 015 License along with this program; if not, write to the Free Software 016 Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 017 USA */ 018 019 package org.objectweb.jac.aspects.gui; 020 021 import java.util.HashSet; 022 import java.util.Hashtable; 023 import org.objectweb.jac.core.rtti.CollectionItem; 024 import org.objectweb.jac.core.rtti.FieldItem; 025 import org.objectweb.jac.core.rtti.MemberItem; 026 import org.objectweb.jac.core.rtti.RttiAC; 027 028 /** 029 * Defines a table collection view 030 */ 031 public class CollectionItemView extends MemberItemView { 032 public CollectionItemView(CollectionItem collection, String viewName) { 033 super(collection,viewName); 034 this.collection = collection; 035 } 036 037 CollectionItem collection; 038 CollectionItem getCollection() { 039 return collection; 040 } 041 042 MemberItem[] membersOrder; 043 public MemberItem[] getMembersOrder() { 044 return membersOrder; 045 } 046 public void setMembersOrder(MemberItem[] newMembersOrder) { 047 this.membersOrder = newMembersOrder; 048 } 049 050 CollectionItem multiLineCollection; 051 public CollectionItem getMultiLineCollection() { 052 return multiLineCollection; 053 } 054 public void setMultiLineCollection(CollectionItem newMultiLineCollection) { 055 this.multiLineCollection = newMultiLineCollection; 056 } 057 058 FieldItem groupBy; 059 public FieldItem getGroupBy() { 060 return groupBy; 061 } 062 public void setGroupBy(FieldItem newGroupBy) { 063 this.groupBy = newGroupBy; 064 } 065 066 boolean embeddedAdded; 067 public void setEmbeddedAdded(boolean embedded) { 068 this.embeddedAdded = embedded; 069 } 070 public boolean isEmbeddedAdded() { 071 return embeddedAdded; 072 } 073 074 HashSet embeddedEditorColumns = new HashSet(); 075 boolean embeddedEditors = false; 076 public void setEmbeddedEditors(boolean embeddedEditors) { 077 this.embeddedEditors = embeddedEditors; 078 } 079 public void addEmbeddedEditorColumn(MemberItem field) { 080 embeddedEditorColumns.add(field); 081 } 082 public boolean isEmbeddedEditors(MemberItem field) { 083 return embeddedEditors || embeddedEditorColumns.contains(field); 084 } 085 public boolean isEmbeddedEditors() { 086 return embeddedEditors; 087 } 088 089 boolean viewableItems = true; 090 public boolean isViewableItems() { 091 if (collection.isMap()) 092 return RttiAC.isIndex(collection) && viewableItems; 093 else 094 return viewableItems; 095 } 096 public void setViewableItems(boolean newViewableItems) { 097 this.viewableItems = newViewableItems; 098 } 099 100 boolean enableLinks = true; 101 public void setEnableLinks(boolean enable) { 102 this.enableLinks = enable; 103 } 104 public boolean areLinksEnabled() { 105 return enableLinks; 106 } 107 108 /** MemberItem -> viewType */ 109 Hashtable viewTypes = new Hashtable(); 110 public void setViewType(MemberItem member, String viewType) { 111 viewTypes.put(member,viewType); 112 } 113 public String getViewType(MemberItem member) { 114 return (String)viewTypes.get(member); 115 } 116 117 FieldItem additionalRow; 118 public FieldItem getAdditionalRow() { 119 return additionalRow; 120 } 121 public void setAdditionalRow(FieldItem newAdditionalRow) { 122 this.additionalRow = newAdditionalRow; 123 } 124 } 125