[Checkins] SVN: z3c.reference/branches/flash/src/z3c/reference/
extended demo application of z3c.reference
Johannes Faigle
johannes.faigle at lovelysystems.com
Tue Sep 4 05:29:57 EDT 2007
Log message for revision 79457:
extended demo application of z3c.reference
Changed:
U z3c.reference/branches/flash/src/z3c/reference/README.txt
U z3c.reference/branches/flash/src/z3c/reference/browser/configure.zcml
A z3c.reference/branches/flash/src/z3c/reference/browser/resources/jquery.popupwindow.js
U z3c.reference/branches/flash/src/z3c/reference/browser/widget.py
U z3c.reference/branches/flash/src/z3c/reference/demo/README.txt
U z3c.reference/branches/flash/src/z3c/reference/demo/app.py
U z3c.reference/branches/flash/src/z3c/reference/demo/browser/addref.pt
U z3c.reference/branches/flash/src/z3c/reference/demo/browser/configure.zcml
U z3c.reference/branches/flash/src/z3c/reference/demo/browser/ftesting.zcml
U z3c.reference/branches/flash/src/z3c/reference/demo/browser/js/jquery.js
U z3c.reference/branches/flash/src/z3c/reference/demo/browser/picker.pt
U z3c.reference/branches/flash/src/z3c/reference/demo/browser/views.py
U z3c.reference/branches/flash/src/z3c/reference/demo/configure.zcml
U z3c.reference/branches/flash/src/z3c/reference/demo/interfaces.py
U z3c.reference/branches/flash/src/z3c/reference/interfaces.py
U z3c.reference/branches/flash/src/z3c/reference/reference.py
U z3c.reference/branches/flash/src/z3c/reference/schema.py
-=-
Modified: z3c.reference/branches/flash/src/z3c/reference/README.txt
===================================================================
--- z3c.reference/branches/flash/src/z3c/reference/README.txt 2007-09-04 01:49:02 UTC (rev 79456)
+++ z3c.reference/branches/flash/src/z3c/reference/README.txt 2007-09-04 09:29:56 UTC (rev 79457)
@@ -137,3 +137,4 @@
Traceback (most recent call last):
...
ValueError: ('viewReferences', 'field is readonly')
+
Modified: z3c.reference/branches/flash/src/z3c/reference/browser/configure.zcml
===================================================================
--- z3c.reference/branches/flash/src/z3c/reference/browser/configure.zcml 2007-09-04 01:49:02 UTC (rev 79456)
+++ z3c.reference/branches/flash/src/z3c/reference/browser/configure.zcml 2007-09-04 09:29:56 UTC (rev 79457)
@@ -26,7 +26,6 @@
permission="zope.Public"
/>
-
<view
for="..interfaces.IViewReference"
name="absolute_url"
@@ -54,7 +53,10 @@
<resourceLibrary name="z3c.reference"
require="z3c.javascript.jquery">
- <directory source="resources" include="z3c_reference.js"/>
+ <!--directory source="resources"
+ include="z3c_reference.js jquery.thickbox.js thickbox.css forms.extended.js extra.js jquery.forms.js"/-->
+ <directory source="resources"
+ include="z3c_reference.js jquery.popupwindow.js"/>
</resourceLibrary>
<browser:resourceDirectory
Added: z3c.reference/branches/flash/src/z3c/reference/browser/resources/jquery.popupwindow.js
===================================================================
--- z3c.reference/branches/flash/src/z3c/reference/browser/resources/jquery.popupwindow.js (rev 0)
+++ z3c.reference/branches/flash/src/z3c/reference/browser/resources/jquery.popupwindow.js 2007-09-04 09:29:56 UTC (rev 79457)
@@ -0,0 +1,118 @@
+/*
+Popupwindow plugin for jQuery.
+by: Tony Petruzzi
+homepage: http://rip747.wordpress.com
+plugin download: http://rip747.wordpress.com/2007/03/02/the-return-of-popupwindow-jquery-plugin/
+
+Takes a link and will create a popupwindow based on the href of the link. You can
+over ride the default setting by passing your own settings using the REL attribute
+of the link. You can have different setting for each link if you'd like.
+
+To use just include the plugin in the HEAD section of the page AFTER calling jQuery.
+After that, use jQuery to find the links you want and pass any parameters you want
+
+04/04/2007:
+
+1) added profiles so you don't have to pass the settings for each link anymore.
+2) remove resize as a setting and add the correct setting resizable
+3) removed example text from this file and made an index.htm files to house example.
+4) add example of using profiles to the new examples page.
+5) example pulls the latest jquery library from jquery.com.
+
+05/14/2007
+
+1) removed trailing comma in settings that was causing IE to bottom out with an error.
+
+*/
+
+jQuery.fn.popupwindow = function(p)
+{
+
+ var profiles = p || {};
+
+ return this.each(function(index){
+ var setting, parameters, mysettings, b, a;
+
+ // for overrideing the default settings
+ mysettings = (jQuery(this).attr("rel") || "").split(",");
+
+
+ settings = {
+ height:600, // sets the height in pixels of the window.
+ width:600, // sets the width in pixels of the window.
+ toolbar:0, // determines whether a toolbar (includes the forward and back buttons) is displayed {1 (YES) or 0 (NO)}.
+ scrollbars:0, // determines whether scrollbars appear on the window {1 (YES) or 0 (NO)}.
+ status:0, // whether a status line appears at the bottom of the window {1 (YES) or 0 (NO)}.
+ resizable:1, // whether the window can be resized {1 (YES) or 0 (NO)}. Can also be overloaded using resizable.
+ left:0, // left position when the window appears.
+ top:0, // top position when the window appears.
+ center:0 // should we center the window? {1 (YES) or 0 (NO)}. overrides top and left
+ };
+
+ // if mysettings length is 1 and not a value pair then assume it is a profile declaration
+ // and see if the profile settings exists
+
+
+ if(mysettings.length == 1 && mysettings[0].split(":").length == 1)
+ {
+ a = mysettings[0];
+ // see if a profile has been defined
+ if(typeof profiles[a] != "undefined")
+ {
+ settings = jQuery.extend(settings, profiles[a]);
+ }
+ }
+ else
+ {
+ // overrides the settings with parameter passed in using the rel tag.
+ for(var i=0; i < mysettings.length; i++)
+ {
+ b = mysettings[i].split(":");
+ if(typeof settings[b[0]] != "undefined" && b.length == 2)
+ {
+ settings[b[0]] = b[1];
+ }
+ }
+ }
+
+ // center the window
+ if (settings.center == 1)
+ {
+ settings.top = (screen.height-(settings.height + 110))/2;
+ settings.left = (screen.width-settings.width)/2;
+ }
+
+ parameters = "height=" + settings.height + ",width=" + settings.width + ",toolbar=" + settings.toolbar + ",scrollbars=" + settings.scrollbars + ",status=" + settings.status + ",resizable=" + settings.resizable + ",left=" + settings.left + ",screenX=" + settings.left + ",top=" + settings.top + ",screenY=" + settings.top;
+
+ jQuery(this).bind("click", function(){
+ var name = "PopUpWindow" + index;
+ window.open(this.href, name, parameters).focus();
+ return false;
+ });
+ });
+
+};
+
+// settings for popupwindow
+var profiles = {
+ window:
+ {
+ height:550,
+ width:171,
+ status:0,
+ scrollbars:1,
+ resizable:1
+ }
+ };
+
+// popup
+$(document).ready(function(){
+ $(function() {
+ $("a.popupwindow").popupwindow(profiles);
+ });
+});
+
+
+function setIntId(id) {
+ $("input[@name=form.previewImage]").val(id);
+}
\ No newline at end of file
Modified: z3c.reference/branches/flash/src/z3c/reference/browser/widget.py
===================================================================
--- z3c.reference/branches/flash/src/z3c/reference/browser/widget.py 2007-09-04 01:49:02 UTC (rev 79456)
+++ z3c.reference/branches/flash/src/z3c/reference/browser/widget.py 2007-09-04 09:29:56 UTC (rev 79457)
@@ -15,7 +15,7 @@
untitled = u'No Link defined'
undefined = u'Undefined'
-emptyViewReference = ViewReference(view=u'#')
+emptyViewReference = None
emptyImageReference = ImageReference(
view=u'/@@/z3c.reference.resources/noimage.jpg')
@@ -57,11 +57,10 @@
class ViewReferenceWidget(TextWidget):
-
"""renders an "a" tag with the title and href attributes
if no target
-
+
>>> from zope.publisher.browser import TestRequest
>>> from z3c.reference.schema import ViewReferenceField
>>> from zope.app.folder import Folder
@@ -114,13 +113,13 @@
"""
-
+
tag = u'input'
- type = u'hidden'
- cssClass = u''
- extra = u'z3c:explorerLink="@@explorer.html?link=1"'
+ type = u'text'
+ cssClass = u'popupwindow'
+ extra = u'rel="window"'
refTag = u'a'
- refTagOnClick="z3cReferenceOnClick(this); return false;"
+ refTagOnClick=""
_emptyReference = emptyViewReference
@@ -143,18 +142,22 @@
ref = None
if ref is None:
ref = self._emptyReference
- url = absoluteURL(ref,self.request)
- if ref.target is not None:
- contents = getattr(ref.target,'title',None) or \
- ref.target.__name__
- else:
- contents = untitled
+ #url = absoluteURL(ref,self.request)
+ #if ref.target is not None:
+ # contents = getattr(ref.target,'title',None) or \
+ # ref.target.__name__
+ #else:
+ # contents = untitled
+ #ref = self._emptyReference
+ siteUrl = absoluteURL(hooks.getSite(),self.request)
+ contents = undefined
tag = renderElement(self.refTag,
- href=url,
+ href = siteUrl + '/@@picker.html',
name=self.name,
id=self.name + '.tag',
title=contents,
onclick=self.refTagOnClick,
+ cssClass = self.cssClass,
contents=contents,
style=self.style,
extra=self.extra)
Modified: z3c.reference/branches/flash/src/z3c/reference/demo/README.txt
===================================================================
--- z3c.reference/branches/flash/src/z3c/reference/demo/README.txt 2007-09-04 01:49:02 UTC (rev 79456)
+++ z3c.reference/branches/flash/src/z3c/reference/demo/README.txt 2007-09-04 09:29:56 UTC (rev 79457)
@@ -77,4 +77,8 @@
>>> i2.viewReferences[0].__parent__ is f1
True
+Settings
+========
+
+
Modified: z3c.reference/branches/flash/src/z3c/reference/demo/app.py
===================================================================
--- z3c.reference/branches/flash/src/z3c/reference/demo/app.py 2007-09-04 01:49:02 UTC (rev 79456)
+++ z3c.reference/branches/flash/src/z3c/reference/demo/app.py 2007-09-04 09:29:56 UTC (rev 79457)
@@ -14,7 +14,7 @@
class DemoFolder(Folder):
interface.implements(IDemoFolder, IReferenced)
- previewImage = ViewReferenceProperty("previewImage")
+ previewImage = ViewReferenceProperty("PreviewImage")
assets = ViewReferenceProperty("assets")
viewReferences = RelationPropertyIn(viewReferenceRelated)
Modified: z3c.reference/branches/flash/src/z3c/reference/demo/browser/addref.pt
===================================================================
--- z3c.reference/branches/flash/src/z3c/reference/demo/browser/addref.pt 2007-09-04 01:49:02 UTC (rev 79456)
+++ z3c.reference/branches/flash/src/z3c/reference/demo/browser/addref.pt 2007-09-04 09:29:56 UTC (rev 79457)
@@ -11,26 +11,23 @@
margin: 5px;
border: 1px solid #000;
}
+
+ div.actions {
+ clear: both;
+ border-width: 0px;
+ }
</style>
<script src="jquery"
type="text/javascript"
tal:attributes="src context/++resource++jquery.js">
</script>
- <script type="text/javascript">
- function setIntId(uid) {
- $("input[@name=intid]").attr("value",uid);
- $("div.properties").show();
- $("div.actions").show();
- $("div.image-tool").show();
- }
- </script>
<script type="text/javascript"
tal:content="string:
function loadFlash() {
var url='${context/++resource++imagetool.swf}';
var img='${context/++resource++img.jpg}';
url = url + '?url=' + img;
- var so = new SWFObject(url, 'image-tool', '100%', '500px', '8', 0x000000);
+ var so = new SWFObject(url, 'image-tool', '100%', '300px', '8', 0x000000);
so.addParam('allowScriptAccess', 'sameDomain');
so.addParam('movie', url);
so.addParam('quality', 'high');
@@ -48,11 +45,44 @@
</script>
<script type="text/javascript">
$(document).ready(loadFlash);
+
+ // user selects an item
+ function setIntId(uid) {
+ // reset values
+ $("textarea").val("");
+ $("input[@type=text]").val("");
+ // set iniid of selected item
+ $("input[@name=intid]").val(uid);
+ // highlight selected item
+ $("a").attr("style", "");
+ $("a[@href*=" + uid + "]").attr("style","background-color: red");
+ // show divs
+ $("div.properties").show();
+ $("div.actions").show();
+ $("div.image-tool").show();
+ }
+
+
+ $(document).ready(function(){
+ // pressed submit button
+ // return selected item to parent and close popup
+ $("input[@type=submit]").click(function() {
+ var intid = $("input[@name=intid]").val();
+ window.opener.setIntId(intid);
+ window.close();
+ });
+
+ // expand window size
+ $("a").click(function() {
+
+ });
+ });
</script>
</head>
<body>
<form>
<div class="picker">
+ <b>Target:</b><br />
<tal:block repeat="item view/items">
<a href="#"
tal:attributes="href string:JavaScript:setIntId(${item/uid})">
@@ -63,15 +93,16 @@
<input name="intid" type="text" value="None" />
</div>
<div class="properties" style="display:none;">
+ <b>Properties:</b><br />
<label for="title">Title</label>
<input id="title" name="title" type="text" /><br />
<label for="description">Decsprition</label>
<textarea id="description" name="description"
cols="20" rows="10"
- ></textarea>
+ >abcd</textarea>
</div>
<div class="image-tool" style="display:none;">
- <div style="display:none;">
+ <!--div style="display:none;">
<ul>
<li><a href="javascript:zoom(1)">zoom in</a></li>
<li><a href="javascript:zoom(-1)">zoom out</a></li>
@@ -79,7 +110,7 @@
<li><a href="javascript:rotate(-1)">rotate left</li>
<li><a href="javascript:save()">save</a></li>
</ul>
- </div>
+ </div-->
<div id="flash-target">
</div>
</div>
Modified: z3c.reference/branches/flash/src/z3c/reference/demo/browser/configure.zcml
===================================================================
--- z3c.reference/branches/flash/src/z3c/reference/demo/browser/configure.zcml 2007-09-04 01:49:02 UTC (rev 79456)
+++ z3c.reference/branches/flash/src/z3c/reference/demo/browser/configure.zcml 2007-09-04 09:29:56 UTC (rev 79457)
@@ -37,6 +37,15 @@
permission="zope.ManageContent"
/>
+ <page
+ for="zope.app.component.interfaces.ISite"
+ name="picker.html"
+ class=".views.Picker"
+ permission="zope.ManageContent"
+ template="picker.pt"
+ />
+
+ <!-- test -->
<pages
for="zope.annotation.interfaces.IAnnotatable"
permission="zope.app.dublincore.change"
@@ -59,22 +68,7 @@
permission="zope.ManageContent"
template="test.pt"
/>
-
- <page
- for="zope.app.component.interfaces.ISite"
- name="objectpicker.html"
- class=".views.DemoPicker"
- permission="zope.ManageContent"
- template="picker.pt"
- />
- <page
- for="zope.app.component.interfaces.ISite"
- name="addref.html"
- class=".views.AddRef"
- permission="zope.ManageContent"
- template="addref.pt"
- />
<!--
<editform schema="z3c.reference.demo.interfaces.IDemoFolder"
label="Edit" name="editdemofolder.html" menu="zmi_views"
Modified: z3c.reference/branches/flash/src/z3c/reference/demo/browser/ftesting.zcml
===================================================================
--- z3c.reference/branches/flash/src/z3c/reference/demo/browser/ftesting.zcml 2007-09-04 01:49:02 UTC (rev 79456)
+++ z3c.reference/branches/flash/src/z3c/reference/demo/browser/ftesting.zcml 2007-09-04 09:29:56 UTC (rev 79457)
@@ -61,11 +61,11 @@
<include package="zope.app.intid" />
<include package="zope.app.keyreference" />
<include package="zope.formlib"/>
- <include package="lovely.portal"/>
<include package="zc.resourcelibrary" />
<include package="z3c.javascript.jquery"/>
<include package="lovely.relation" />
+ <include package="lovely.relation" file="o2o.zcml" />
<include package="z3c.reference" />
<include package="z3c.reference.demo" />
Modified: z3c.reference/branches/flash/src/z3c/reference/demo/browser/js/jquery.js
===================================================================
--- z3c.reference/branches/flash/src/z3c/reference/demo/browser/js/jquery.js 2007-09-04 01:49:02 UTC (rev 79456)
+++ z3c.reference/branches/flash/src/z3c/reference/demo/browser/js/jquery.js 2007-09-04 09:29:56 UTC (rev 79457)
@@ -2683,5 +2683,5 @@
function cropImage(crop_x, crop_y, crop_w, crop_h, size_w, size_h, rotation){
- alert(crop_x + "-" + crop_y + "-" + crop_w + "-" + crop_h);
+ alert(crop_x + "-" + crop_y + "-" + crop_w + "-" + crop_h + "-" + size_w + "-" + size_h + "-" + rotation);
}
Modified: z3c.reference/branches/flash/src/z3c/reference/demo/browser/picker.pt
===================================================================
--- z3c.reference/branches/flash/src/z3c/reference/demo/browser/picker.pt 2007-09-04 01:49:02 UTC (rev 79456)
+++ z3c.reference/branches/flash/src/z3c/reference/demo/browser/picker.pt 2007-09-04 09:29:56 UTC (rev 79457)
@@ -6,22 +6,184 @@
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>demo picker</title>
<style type="text/css">
+ body {
+ margin: 0px;
+ padding: 0px;
+ height: 100%;
+ font-family: 'Trebuchet MS';
+ font-size: 10pt;
+ }
+
+ a {
+ color: #000;
+ }
+
+ a.ex1, a.ex2 {
+ color: #888;
+ text-decoration: none;
+ }
+
+ div {
+ margin: 0px;
+ }
+
+ div.float {
+ position: absolute;
+ padding: 0px 10px;
+ border: 0px solid #888;
+ border-right-width: 1px;
+ float:left;
+ height: 100%
+ }
+
+ div.picker {
+ width: 150px;
+ }
+
+ div.properties {
+ position: absolute;
+ left: 170px;
+ width: 200px;
+ }
+
+ div.image-tool {
+ position: absolute;
+ left: 390px;
+ width: 500px;
+ }
+
+ div.actions {
+ position: absolute;
+ left: 910px;
+ padding: 0px 10px;
+ }
+
+ h1 {
+ font-size: 12pt;
+ margin: 10px 0px;
+ }
+
+ label {
+ width: 80px;
+ }
+
+ input, textarea {
+ width: 196px;
+ }
+
</style>
+ <script src="jquery"
+ type="text/javascript"
+ tal:attributes="src context/++resource++jquery.js">
+ </script>
+ <script type="text/javascript"
+ tal:content="string:
+ function loadFlash() {
+ var url='${context/++resource++imagetool.swf}';
+ var img='${context/++resource++img.jpg}';
+ url = url + '?url=' + img;
+ var so = new SWFObject(url, 'image-tool', '100%', '490px', '8', 0x000000);
+ so.addParam('allowScriptAccess', 'sameDomain');
+ so.addParam('movie', url);
+ so.addParam('quality', 'high');
+ so.addVariable('crop_x', '100');
+ so.addVariable('crop_y', '100');
+ so.addVariable('crop_w', '100');
+ so.addVariable('crop_h', '100');
+ so.addVariable('original_w', '600');
+ so.addVariable('original_h', '400');
+ so.addVariable('zoomfactor', '0.33');
+ so.addVariable('rotation', '90');
+ var ok = so.write('flash-target');
+ }
+ ">
+ </script>
+ <script type="text/javascript">
+ $(document).ready(loadFlash);
+
+ // user selects an item
+ function setIntId(uid) {
+ // reset values
+ $("textarea").val("");
+ $("input[@type=text]").val("");
+ // set iniid of selected item
+ $("input[@name=intid]").val(uid);
+ // highlight selected item
+ $("a").attr("style", "");
+ $("a[@href*=" + uid + "]").attr("style","background-color: #888");
+ // show divs
+ $("div.properties").show();
+ // $("div.actions").show();
+ // $("div.image-tool").show();
+ }
+
+
+ $(document).ready(function(){
+ // pressed submit button
+ // return selected item to parent and close popup
+ $("input[@type=submit]").click(function() {
+ var intid = $("input[@name=intid]").val();
+ window.opener.setIntId(intid);
+ window.close();
+ });
+
+ $("a.target").click(function() {
+ $("div.actions").hide();
+ $("div.image-tool").hide();
+ $("a.ex1").show();
+ $("a.ex2").show();
+ window.resizeTo(171, 550);
+ window.resizeBy(220, 0);
+ });
+
+ $("a.ex1").click(function() {
+ $("a.ex1").hide();
+ $("div.image-tool").show();
+ window.resizeBy(520, 0);
+ });
+
+ $("a.ex2").click(function() {
+ $("a.ex2").hide();
+ $("div.actions").show();
+ window.resizeBy(220, 0);
+ });
+ });
+ </script>
</head>
<body>
- <div class="picker">
- <h1>elements</h1>
- <tal:block repeat="element view/elements">
- <div>
- <a href="#"
- tal:attributes="href string:${view/url}/${element/__name__}/@@change.html">
- <span tal:replace="element/__name__" />
- </a>
- </div>
+ <div class="picker float">
+ <input name="intid" type="hidden" value="None" />
+ <h1>Targets</h1>
+ <tal:block repeat="item view/items">
+ <a href="#" class="target"
+ tal:attributes="href string:JavaScript:setIntId(${item/uid})">
+ <span tal:replace="item/name" />
+ </a>
+ <br />
</tal:block>
</div>
- <div class="properties">
-
+ <div class="properties float" style="display:none;">
+ <h1>
+ Properties
+ <a href="#" class="ex1">>></a>
+ </h1>
+ <label for="title">Title</label><br />
+ <input id="title" name="title" type="text" /><br />
+ <label for="description">Description</label><br />
+ <textarea id="description" name="description"
+ cols="20" rows="5"
+ >abcd</textarea>
</div>
+ <div class="image-tool float" style="display:none;">
+ <h1>
+ Image-Tool
+ <a href="#" class="ex2">>></a>
+ </h1>
+ <div id="flash-target"></div>
+ </div>
+ <div class="actions" style="display:none;">
+ <h1>Save</h1>
+ <input type="submit" value="add reference" />
+ </div>
</body>
</html>
\ No newline at end of file
Modified: z3c.reference/branches/flash/src/z3c/reference/demo/browser/views.py
===================================================================
--- z3c.reference/branches/flash/src/z3c/reference/demo/browser/views.py 2007-09-04 01:49:02 UTC (rev 79456)
+++ z3c.reference/branches/flash/src/z3c/reference/demo/browser/views.py 2007-09-04 09:29:56 UTC (rev 79457)
@@ -13,17 +13,19 @@
class DemoFolderEdit(form.EditForm):
form_fields = form.Fields(IDemoFolder)
+ label = u"Edit demofolder"
+
-
class DemoImageEdit(form.EditForm):
form_fields = form.Fields(IDemoImage)
-class AddRef(object):
-
+
+class Picker(object):
def items(self):
intIds = component.getUtility(IIntIds)
for o in self.context.values():
+ # skip intid
if str(o.__class__) == u"<class 'zope.app.intid.IntIds'>":
continue
yield dict(
@@ -35,13 +37,14 @@
return absoluteURL(self.context, self.request)
+# temp
class Test(object):
def test(self):
intIds = component.getUtility(IIntIds)
- print self.context
return intIds.getId(self.context)
-
+
+# temp
class DemoPicker(object):
def elements(self):
@@ -52,6 +55,7 @@
return absoluteURL(self.context, self.request)
+# test for dublin core metadata
class Meta(object):
"""Update dc title."""
Modified: z3c.reference/branches/flash/src/z3c/reference/demo/configure.zcml
===================================================================
--- z3c.reference/branches/flash/src/z3c/reference/demo/configure.zcml 2007-09-04 01:49:02 UTC (rev 79456)
+++ z3c.reference/branches/flash/src/z3c/reference/demo/configure.zcml 2007-09-04 09:29:56 UTC (rev 79457)
@@ -1,9 +1,8 @@
<configure
xmlns="http://namespaces.zope.org/zope"
xmlns:i18n="http://namespaces.zope.org/i18n"
- i18n_domain="z3c.reference"
- >
-
+ i18n_domain="z3c.reference" >
+
<class class="z3c.reference.demo.app.DemoFolder">
<implements
interface="zope.annotation.interfaces.IAttributeAnnotatable" />
Modified: z3c.reference/branches/flash/src/z3c/reference/demo/interfaces.py
===================================================================
--- z3c.reference/branches/flash/src/z3c/reference/demo/interfaces.py 2007-09-04 01:49:02 UTC (rev 79456)
+++ z3c.reference/branches/flash/src/z3c/reference/demo/interfaces.py 2007-09-04 09:29:56 UTC (rev 79457)
@@ -4,11 +4,13 @@
class IDemoFolder(interface.Interface):
""" demo folder"""
- previewImage = ViewReferenceField('previewImage')
- assets = schema.List(title=u"Related",
- value_type=ViewReferenceField(u'demosettings'),
- required=False,
- default=[])
+ previewImage = ViewReferenceField('previewImage',
+ title=u"previewImage",
+ required=False)
+ #assets = schema.List(title=u"Related",
+ # value_type=ViewReferenceField(u'demosettings'),
+ # required=False,
+ # default=[])
class IDemoImage(interface.Interface):
Modified: z3c.reference/branches/flash/src/z3c/reference/interfaces.py
===================================================================
--- z3c.reference/branches/flash/src/z3c/reference/interfaces.py 2007-09-04 01:49:02 UTC (rev 79456)
+++ z3c.reference/branches/flash/src/z3c/reference/interfaces.py 2007-09-04 09:29:56 UTC (rev 79457)
@@ -4,7 +4,6 @@
from zope.interface.interfaces import IInterface
class IViewReference(interface.Interface):
-
"""a reference to a view of an object, by storing the name of the
view. If the target is None, the view name is supposed to be an
absolute url to an external target"""
@@ -13,27 +12,36 @@
title=u'Target Object')
view = schema.TextLine(required=False,title=u'View')
+
+class IImageReference(IViewReference):
+ """a reference to an image with optional size constraints"""
+
+ target = schema.Object(IImage,required=False,
+ title=u'Target Image')
+
+
class IReferenced(interface.Interface):
"""backrefs"""
+
viewReferences = schema.List(title=u"View references",
value_type=schema.Object(IViewReference),
required=False,
readonly=True,
default=[])
+class IViewReferenceSettings(interface.Interface):
+ settings = schema.List(title=u'Settings',
+ required=False,
+ default=[])
+
+
class IViewReferenceField(schema.interfaces.IObject):
"""a view reference field"""
settings = schema.TextLine(title=u"Settings",
required=False)
-
-class IImageReference(IViewReference):
- """a reference to an image with optional size constraints"""
- target = schema.Object(IImage,required=False,
- title=u'Target Image')
-
class IImageReferenceField(schema.interfaces.IObject):
"""an image reference field"""
@@ -43,8 +51,9 @@
required=True,
min_length=2,max_length=2)
+
class IObjectReferenceField(IViewReferenceField):
-
+
"""a schema based reference field"""
refSchema = schema.Object(IInterface,
Modified: z3c.reference/branches/flash/src/z3c/reference/reference.py
===================================================================
--- z3c.reference/branches/flash/src/z3c/reference/reference.py 2007-09-04 01:49:02 UTC (rev 79456)
+++ z3c.reference/branches/flash/src/z3c/reference/reference.py 2007-09-04 09:29:56 UTC (rev 79457)
@@ -42,6 +42,5 @@
class ImageReference(ViewReference):
-
interface.implements(IImageReference)
Modified: z3c.reference/branches/flash/src/z3c/reference/schema.py
===================================================================
--- z3c.reference/branches/flash/src/z3c/reference/schema.py 2007-09-04 01:49:02 UTC (rev 79456)
+++ z3c.reference/branches/flash/src/z3c/reference/schema.py 2007-09-04 09:29:56 UTC (rev 79457)
@@ -9,30 +9,13 @@
settings = settings
super(ViewReferenceField,self).__init__(IViewReference,
**kw)
+
-class ImageReferenceField(schema.Object):
- interface.implements(IImageReferenceField)
- size = schema.fieldproperty.FieldProperty(IImageReferenceField['size'])
-
- def __init__(self,**kw):
- self.size = kw.pop('size',None)
- super(ImageReferenceField,self).__init__(IImageReference,
- **kw)
-
-class ObjectReferenceField(ViewReferenceField):
-
- interface.implements(IObjectReferenceField)
-
- def __init__(self,refSchema,**kw):
- self.refSchema = refSchema
- super(ObjectReferenceField,self).__init__(**kw)
-
-
class ViewReferenceProperty(property):
"""A property that takes care of setting __parent__ for all reference
objects when being set on the content object.
"""
-
+
def __init__(self, name):
self.name = "_%s" % name
@@ -46,3 +29,22 @@
else:
value.__parent__ = obj
setattr(obj, self.name, value)
+
+
+class ImageReferenceField(schema.Object):
+ interface.implements(IImageReferenceField)
+ size = schema.fieldproperty.FieldProperty(IImageReferenceField['size'])
+
+ def __init__(self,**kw):
+ self.size = kw.pop('size',None)
+ super(ImageReferenceField,self).__init__(IImageReference,
+ **kw)
+
+
+class ObjectReferenceField(ViewReferenceField):
+ interface.implements(IObjectReferenceField)
+
+ def __init__(self,refSchema,**kw):
+ self.refSchema = refSchema
+ super(ObjectReferenceField,self).__init__(**kw)
+
More information about the Checkins
mailing list