From: <ju...@us...> - 2006-06-27 14:59:53
|
Revision: 454 Author: julienq Date: 2006-06-27 07:59:42 -0700 (Tue, 27 Jun 2006) ViewCVS: http://svn.sourceforge.net/urakawa/?rev=454&view=rev Log Message: ----------- Integrating the toolkit in the application... Modified Paths: -------------- trunk/urakawa/application/Obi/Obi/Obi.csproj trunk/urakawa/application/Obi/Obi/ObiForm.cs trunk/urakawa/application/Obi/Obi/Project.cs trunk/urakawa/application/Obi/Obi/Strips/Manager.cs trunk/urakawa/application/Obi/Obi/Strips/ParStrip.cs Modified: trunk/urakawa/application/Obi/Obi/Obi.csproj =================================================================== --- trunk/urakawa/application/Obi/Obi/Obi.csproj 2006-06-27 05:34:11 UTC (rev 453) +++ trunk/urakawa/application/Obi/Obi/Obi.csproj 2006-06-27 14:59:42 UTC (rev 454) @@ -57,6 +57,10 @@ <Reference Include="System.Runtime.Serialization.Formatters.Soap" /> <Reference Include="System.Windows.Forms" /> <Reference Include="System.Xml" /> + <Reference Include="urakawa, Version=1.0.2363.26816, Culture=neutral"> + <SpecificVersion>False</SpecificVersion> + <HintPath>..\..\..\implementation\UrakawaToolkit\obj\Debug\urakawa.dll</HintPath> + </Reference> </ItemGroup> <ItemGroup> <Compile Include="Commands.cs" /> Modified: trunk/urakawa/application/Obi/Obi/ObiForm.cs =================================================================== --- trunk/urakawa/application/Obi/Obi/ObiForm.cs 2006-06-27 05:34:11 UTC (rev 453) +++ trunk/urakawa/application/Obi/Obi/ObiForm.cs 2006-06-27 14:59:42 UTC (rev 454) @@ -14,6 +14,8 @@ using Commands; using Obi.UserControls; +using urakawa.core; + namespace Obi { public partial class ObiForm : Form @@ -687,7 +689,8 @@ private void appendStripToolStripMenuItem_Click(object sender, EventArgs e) { - Strips.ParStrip par = mProject.Strips.AddNewParStrip(); + CoreNode new_node = mProject.AppendStrip(); + Strips.ParStrip par = mProject.Strips.AddNewParStrip(new_node); mProjectPanel.StripManager.Add(par); OnProjectModified(); Debug(String.Format(Localizer.Message("debug_appended_strip"), par)); Modified: trunk/urakawa/application/Obi/Obi/Project.cs =================================================================== --- trunk/urakawa/application/Obi/Obi/Project.cs 2006-06-27 05:34:11 UTC (rev 453) +++ trunk/urakawa/application/Obi/Obi/Project.cs 2006-06-27 14:59:42 UTC (rev 454) @@ -2,6 +2,9 @@ using System.Collections.Generic; using System.Text; +using urakawa.core; +using urakawa.media; + namespace Obi { public class Project @@ -12,6 +15,11 @@ private NCX.NCX mNCX; // TOC of the project private Strips.Manager mStrips; // strip manager for the project + public static readonly string AUDIO_CHANNEL = "audio channel"; + + private Presentation mPresentation; // the presentation itself + //private ChannelsProperty mAudioProperty; // audio property for core nodes + public bool Unsaved { get { return mUnsaved; } } public string XUKPath { get { return mXUKPath; } } public SimpleMetadata Metadata { get { return mMetadata; } } @@ -31,6 +39,13 @@ mMetadata = new SimpleMetadata(title, id, userProfile); mNCX = new NCX.NCX(this); mStrips = new Strips.Manager(); + + mPresentation = new Presentation(); + Channel audio_channel = mPresentation.getChannelFactory().createChannel(AUDIO_CHANNEL); + mPresentation.getChannelsManager().addChannel(audio_channel); + AudioMedia audio_media = (AudioMedia)mPresentation.getMediaFactory().createMedia(MediaType.AUDIO); + //mAudioProperty = mPresentation.getPropertyFactory().createChannelsProperty(); + //mAudioProperty.setMedia(audio_channel, audio_media); } /// <summary> @@ -96,8 +111,29 @@ return System.Text.RegularExpressions.Regex.Replace(title, @"[^a-zA-Z0-9_]", "_"); } - public void AppendItem() + /// <summary> + /// A new strip is appended: need to create a new node + /// </summary> + public CoreNode AppendStrip() { + CoreNode new_node = mPresentation.getCoreNodeFactory().createNode(); + // new_node.setProperty(mAudioProperty); + // Find the last node after which to insert + CoreNode last = mPresentation.getRootNode(); + while (last.getChildCount() > 0) + { + last = (CoreNode)last.getChild(last.getChildCount() - 1); + } + // Add the node as a sibling; or if this is the root node, as a child + if (last.getParent() == null) + { + last.appendChild(new_node); + } + else + { + ((CoreNode)(last.getParent())).appendChild(new_node); + } + return new_node; } } -} +} \ No newline at end of file Modified: trunk/urakawa/application/Obi/Obi/Strips/Manager.cs =================================================================== --- trunk/urakawa/application/Obi/Obi/Strips/Manager.cs 2006-06-27 05:34:11 UTC (rev 453) +++ trunk/urakawa/application/Obi/Obi/Strips/Manager.cs 2006-06-27 14:59:42 UTC (rev 454) @@ -2,6 +2,8 @@ using System.Collections.Generic; using System.Text; +using urakawa.core; + namespace Obi.Strips { public class Manager @@ -29,9 +31,9 @@ mSelected = null; } - public ParStrip AddNewParStrip() + public ParStrip AddNewParStrip(CoreNode node) { - ParStrip par = new ParStrip(Localizer.Message("new_strip_label")); + ParStrip par = new ParStrip(Localizer.Message("new_strip_label"), node); mPars.Add(par); return par; } Modified: trunk/urakawa/application/Obi/Obi/Strips/ParStrip.cs =================================================================== --- trunk/urakawa/application/Obi/Obi/Strips/ParStrip.cs 2006-06-27 05:34:11 UTC (rev 453) +++ trunk/urakawa/application/Obi/Obi/Strips/ParStrip.cs 2006-06-27 14:59:42 UTC (rev 454) @@ -2,11 +2,16 @@ using System.Collections.Generic; using System.Text; +using urakawa.core; +using urakawa.media; + namespace Obi.Strips { public class ParStrip: Strip { - private string mLabel; + private string mLabel; // the strip label + private CoreNode mNode; // the core node corresponding to this strip + private SequenceMedia mAudio; // heading audio object public delegate void LabelChangedHandler(object sender, LabelChangedEventArgs e); public event LabelChangedHandler LabelChanged; @@ -25,14 +30,38 @@ } } + /// <summary> + /// Audio to the heading + /// </summary> + public SequenceMedia Audio + { + get + { + return mAudio; + } + set + { + Presentation presentation = (Presentation)mNode.getPresentation(); + ChannelsProperty audioprop = (ChannelsProperty)presentation.getPropertyFactory().createChannelsProperty(); + ChannelsManager manager = (ChannelsManager)presentation.getChannelsManager(); + Channel audiochan = (Channel)((manager.getChannelByName(Project.AUDIO_CHANNEL)[0])); + audioprop.setMedia(audiochan, value); + mNode.setProperty(audioprop); + } + } + public ParStrip() { mLabel = null; + mNode = null; + mAudio = null; } - public ParStrip(string label) + public ParStrip(string label, CoreNode node) { mLabel = label; + mNode = node; + mAudio = null; } public override string ToString() This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |