--- /dev/null
+/*
+ Copyright (C) 2000-2004 SKYRIX Software AG
+
+ This file is part of OGo
+
+ OGo is free software; you can redistribute it and/or modify it under
+ the terms of the GNU Lesser General Public License as published by the
+ Free Software Foundation; either version 2, or (at your option) any
+ later version.
+
+ OGo is distributed in the hope that it will be useful, but WITHOUT ANY
+ WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
+ License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with OGo; see the file COPYING. If not, write to the
+ Free Software Foundation, 59 Temple Place - Suite 330, Boston, MA
+ 02111-1307, USA.
+*/
+// $Id$
+
+
+#include "common.h"
+#include <Common/UIxComponent.h>
+#include <SOGoLogic/SOGoAppointment.h>
+
+
+@interface UIxAppointmentEditor : UIxComponent
+{
+ id appointment;
+}
+
+- (SOGoAppointment *)appointment;
+
+@end
+
+@implementation UIxAppointmentEditor
+
+- (void)dealloc {
+ [self->appointment release];
+ [super dealloc];
+}
+
+
+/* accessors */
+
+
+- (NSString *)formattedAptStartTime {
+ NSCalendarDate *date;
+
+ date = [[self appointment] startDate];
+ /* TODO: convert this into display timeZone! */
+ return [date descriptionWithCalendarFormat:@"%A, %Y-%m-%d %H:%M %Z"];
+}
+
+
+/* backend */
+
+
+- (SOGoAppointment *)appointment {
+ if(self->appointment == nil) {
+ NSString *iCalString;
+
+ iCalString = [[self clientObject] valueForKey:@"iCalString"];
+ self->appointment = [[SOGoAppointment alloc] initWithICalString:iCalString];
+ }
+ return self->appointment;
+}
+
+@end
--- /dev/null
+<?xml version='1.0' standalone='yes'?>
+<var:component xmlns="http://www.w3.org/1999/xhtml"
+ xmlns:var="http://www.skyrix.com/od/binding"
+ xmlns:const="http://www.skyrix.com/od/constant"
+ xmlns:uix="OGo:uix"
+ className="UIxPageFrame"
+ title="name"
+>
+
+ <table cellspacing="0" cellpadding="5" width="100%">
+ <tr>
+ <td>
+ <table cellpadding="0" cellspacing="0" width="100%">
+ <tr>
+ <td width="5"/>
+ <td class="window_label">Appointment Editor</td>
+ <td width="36" align="right" valign="center">
+ <var:component className="UIxWinClose" />
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr>
+ <td>
+ <table border="0" cellpadding="2" width="100%" cellspacing="0" bgcolor="#e8e8e0">
+ <tr>
+ <td align="left" colspan="2">
+ <span class="aptview_title">Appointment on <var:string value="formattedAptStartTime" /></span>
+ </td>
+ </tr>
+ <tr valign="top">
+ <td align="right" width="15%">
+ <span class="aptview_text">Start time:</span>
+ </td>
+ <td align="left" bgcolor="#FFFFF0">
+ <span class="aptview_text">
+ start time
+ </span>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr>
+ <td>
+ <table border="0" cellpadding="2" width="100%" cellspacing="0" bgcolor="#e8e8e0">
+ <tr>
+ <td align="left" colspan="2">
+ <span class="aptview_title">Search participants</span>
+ </td>
+ </tr>
+ <tr valign="top">
+ <td align="right" width="15%">
+ <span class="aptview_text">Start time:</span>
+ </td>
+ <td align="left" bgcolor="#FFFFF0">
+ <span class="aptview_text">
+ textarea
+ </span>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+
+ <tr>
+ <td valign="top" width="100%">
+ <table width="100%" border="0" cellpadding="4" cellspacing="0">
+ <tr valign="top">
+ <td align="right" width="15%" bgcolor="#E8E8E0">
+ <span class="aptview_text">Title:</span>
+ </td>
+ <td align="left" bgcolor="#FFFFF0">
+ <span class="aptview_text">
+ <var:string value="appointment.summary" />
+ </span>
+ </td>
+ </tr>
+ <tr valign="top">
+ <td align="right" width="15%" bgcolor="#E8E8E0">
+ <span class="aptview_text">Location:</span>
+ </td>
+ <td align="left" bgcolor="#FFFFF0">
+ <span class="aptview_text">
+ <var:string value="appointment.location" />
+ </span>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ <tr>
+ <td valign="top" width="100%">
+ </td>
+ </tr>
+ </table>
+ <!-- -->
+ <hr />
+ clientObject: <var:string value="clientObject" />
+</var:component>