BundleInput.hpp

00001 #ifndef __FIBERVISH_BUNDLEINPUT_HPP
00002 #define __FIBERVISH_BUNDLEINPUT_HPP
00003 
00004 #include <ocean/plankton/VCreator.hpp>
00005 #include <bundle/Bundle.hpp>
00006 
00007 namespace Wizt
00008 {
00009         template <> 
00010         class VValueTrait<Fiber::BundlePtr>
00011         {
00012         public:
00013                 
00014         static  bool setValueFromText(Fiber::BundlePtr&i, const string&s)
00015                 {
00016                         return false;   
00017                 }
00018 
00019         static  string Text(const Fiber::BundlePtr&BP)
00020                 {
00021                         if (BP)
00022                                 return "(null)"; 
00023 
00024                         return string("<Bundle>") +
00025                                 VValueTrait<int>::Text( BP->sizeP1D() ) +
00026                                 string("</Bundle>");
00027                 } 
00028         };
00029 
00030         template <>
00031         struct  VInputValueTrait<Fiber::BundlePtr>
00032         {
00033         static  void init(const Fiber::BundlePtr&)
00034                 {}
00035 
00036         static  bool setValueFromText(Fiber::BundlePtr&, const string&s)
00037                 {
00038                         // load data here?
00039                         return false;
00040                 }
00041         };
00042 }
00043 
00044 
00045 namespace Fiber
00046 {
00047 using namespace Wizt;
00048 
00049 class   BundleInput : public VInputValue<Fiber::BundlePtr>
00050 {
00051 public:
00052         BundleInput(const RefPtr<VValueParameter<Fiber::BundlePtr> >&P)
00053         : VInputValue<Fiber::BundlePtr>(P)
00054         {}
00055 
00056         override void valueChanged(const RefPtr<VValueBase>&, const ValueNotifierList*, const ValueMap*)
00057         {
00058                 puts("BundleInput: valueChanged() - TOUCH"); 
00059                 touch( NullPtr() );
00060         }
00061 };
00062 
00063 
00064 } // namespace Fiber
00065 
00066 #endif
00067