GTP.NET 4.1.9.28

——————————————
——-GTP.NET 4.1.9.28—-
——————————————
PlexityHide.GTP_vs2010_35.csproj (2)
windowsbase

TimeItemDataConnect.cs (40)
Complex bug in TimeItem binding fixed

TimeItemDataConnect.cs (39)
LinkDataConnect.cs (12)
NodeDataConnect.cs (69)
GTP.NET updated to listen on INotifyCollectionChanged and INotifyPropertyChanged to better allow binding do non datasets – ie objects directly.

Gantt.cs (165)
When changing row in databound set up, the e.Allow is now defaulted to false – this is to avoid mistakes

GTP.NET.WEB.CLR20 (44)
GTP.NET.WEB.CLR20 (43)
PlexityHide.GTP.WEB_vs2010_35.csproj (3)
PlexityHide.GTP.WEB_vs2010_40.csproj (3)
Gantt_ASP.cs (93)
HttpHandler to deliver images in Gantt_ASP

GTP.NET 4.1.6.28 to GTP.NET 4.1.4.14

——————————————
——-GTP.NET 4.1.6.28—-
——————————————
CellLayout.cs (32)
TimeDate.cs (40)
CellLayout.DateTimeFormat
When set, controls how cells of type DateTime are rendered.

——————————————
——-GTP.NET 4.1.4.24—-
——————————————
TimeItemLink.cs (33)
Bug in ZStyle timeitemlink drawing when start item was below visible area. Fixed.

TimeItemLink.cs (32)
Ability to draw TimeItemLinks for two time items that are out of sight but on opposite sides of the VisibleArea.
——————————————
——-GTP.NET 4.1.4.14—-
——————————————
TimeItem.cs (74)
TimeItemLink.cs (31)
When using DrawRectOverride the special drawing of links that is triggerd when one end is out of screen became brittle. Fixed.

GTP.NET 4.1.3.31

——————————————
——-GTP.NET 4.1.3.31—-
——————————————
TimeItem.cs (73)
Bug in Link drawing if one time item was below screen but placed in sub column – then we got tricked and drew the line from the top… Fixed

DateScaler.cs (88)
FiscallYear extension did not effect WeekNumbers – Does now

GridColumns.cs (54)
GridNode.cs (74)
Remove of columns in grid did not correctly update the cells. Gave strange drawing results.

DateScaler.cs (87)
Bug when dragging time item, forcing scroll in time, over hidden time, if less than one day visible -> drawloopexception. Fixed.

11557 : OnGanttRowMinHeightChange

If you want your GanttRow to increase in height to make room for collided time items; read on.

 

Your row looks something like this:

<HierarchicalDataTemplate  x:Key=”RowInfoTemplate”  ItemsSource=”{Binding SubNodes}” ItemTemplate=”{StaticResource SubRowInfoTemplate}”>
        <Grid  MinHeight=”25″>
            <Grid.ColumnDefinitions>
                <ColumnDefinition ></ColumnDefinition>
                <ColumnDefinition ></ColumnDefinition>
            </Grid.ColumnDefinitions>
            <ph:TreeViewMultiColumnRow MultiColumnCoordinator=”{Binding Source={StaticResource MCC}}” LevelReduce=”16″>
                <Grid.ColumnDefinitions>
                    <ColumnDefinition></ColumnDefinition>
                    <ColumnDefinition></ColumnDefinition>
                </Grid.ColumnDefinitions>
                <TextBlock Text=”{Binding Text}” Grid.Column=”0″></TextBlock>
                <TextBlock Text=”{Binding Text}” Grid.Column=”1″></TextBlock>
            </ph:TreeViewMultiColumnRow>
                <Canvas >
                    <ph:GanttRow 
                        FollowDateScalerPosition=”True”
                        Canvas.Top=”-3″ BorderThickness=”0″ Background=”Transparent”
                        IncreaseRow_StartHeight =”30″ IncreaseRowHeightOnCollision=”True” CollisionTimeItemOffset=”20″
                        ItemsSource=”{Binding Items}” ItemTemplate=”{StaticResource SpanTimeItem}” 
                        OnUserDrawTimeItem=”GanttRow_OnUserDrawTimeItem” 
                        OnGanttRowMinHeightChange=”GanttRow_OnGanttRowMinHeightChange”></ph:GanttRow>
                </Canvas>
        </Grid>
    </HierarchicalDataTemplate>

Notice the the GanttRow is enclosed in a Canvas to allow it to follow the datescaler.
The GanttRow will increase in MinHeight since the IncreaseRowHeightOnCollision=”True”, but the canvas will not care, since a canvas does not care how big its content is.

So I implemented the OnGanttRowMinHeightChange event:

        private void GanttRow_OnGanttRowMinHeightChange(object sender, OnGanttRowMinHeightChangeArgs e)
        {
            (e.GanttRow.Parent as Canvas).MinHeight=e.NewHeight;
        }
Now the Canvas increased MinHeight will force to enclosing Grid to Increase height…

 

11432 : Scrollbar for all GanttRows

Question

 

I used your toolkit tree view example as a basis for this but I have set the tree view’s height to auto so as to use the whole screen – but now I have lost the scroll bar on the right. Can I have full screen and a toolbar?

 

Answer

< ?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /> 

You can do this many ways I guess. One way:

                    <ScrollViewer 

                        Name=”_myscrollview”

                        Grid.Row=”1″

                        Grid.Column=”0″

                        Grid.ColumnSpan=”3″

                        Height=”300″

                        VerticalScrollBarVisibility=”Visible”>

                        <ScrollViewer.Content>

                        <controls:TreeView  

                        BorderThickness=”0″

                        Margin=”0″

                        x:Name=”treeview1″

                        ItemTemplate=”{StaticResource SubRowInfoTemplate}”

                        Background=”Transparent” />

                    </ScrollViewer.Content></ScrollViewer>

 

Then add a event handler:

        private void LayoutRoot5_SizeChanged(object sender, SizeChangedEventArgs e)

        {

            _myscrollview.Height = e.NewSize.Height-100;

        }

 

There is probably some smarter way to this in xaml (there always is it seems… J)

11431 : Is there any way to show a background line between the days

Question

 

Is there any way to show a background line between the days? Maybe even hours/minutes depending on scale?< ?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

 

Answer

You can do things like that by using the events, this code draws a line each day:

        void gantt1_OnDrawBackground(object sender, GanttUserDrawArgs e)

        {

            e.Canvas.Children.Clear();

            DateTime aDate=gantt10.DateScaler.StartTime;

            aDate=aDate.Date; // only keep date part

            while (aDate<gantt10.DateScaler.StopTime)

            {

                Line line = new Line();

                e.Canvas.Children.Add(line);

                line.X1 = gantt10.DateScaler.TimeToPixel(aDate);

                line.X2 = line.X1;

                line.Y1 = 0;

                line.Y2 = gantt10.ActualHeight;

                line.Stroke = new SolidColorBrush(Colors.Black);

                line.StrokeThickness = 1;

                aDate=aDate.AddDays(1);

            }

        }

11433 : Position texts before and and after a time item

Question

Howto get textblocks to appear before and after the TimeItem?

Answer

In this time item the Grid with name Rect is the one that gets the size based on Start and Stop datetime values.

The Text after the time item is the one named Text1, the one infront is Text2.

Text1 is positioned in the event implementation: SizeChanged=”TimeItem_SizeChanged” see impl at the bottom

Text2 is positioned with a Translate transform with a negative value.

        <DataTemplate x:Name=”SquaredTimeItem”>< ?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

            <l:TimeItem Height=”20″

                Start=”{Binding Start,Mode=TwoWay}”

                Stop=”{Binding Stop,Mode=TwoWay}”

                Identity=”{Binding Id}”

                TimeItemSizedFrameworkElementName=”Rect” SizeChanged=”TimeItem_SizeChanged”>

 

                <Grid Height=”20″ Name=”Rect”>

                    <Border  BorderBrush=”Black” BorderThickness=”0″ CornerRadius=”3″>

                        <Border.Background>

                            <LinearGradientBrush>

                                <LinearGradientBrush.GradientStops>

                                    <GradientStop Offset=”0″ Color=”LightGray”/>

                                    <GradientStop Offset=”1″ Color=”Gray”/>

                                </LinearGradientBrush.GradientStops>

                            </LinearGradientBrush>

                        </Border.Background>

                    </Border>

                </Grid>

                <TextBlock Name=”Text1″ HorizontalAlignment=”Right” Margin=”3,6,0,0″ Text=”{Binding To}” >

                            <TextBlock.RenderTransform>

                                <TranslateTransform X=”20″></TranslateTransform>

                            </TextBlock.RenderTransform>

                </TextBlock>

                <TextBlock Name=”Text2″ HorizontalAlignment=”Left” Margin=”3,6,0,0″ Text=”{Binding From}” >                           

                            <TextBlock.RenderTransform>

                                <TranslateTransform X=”-25″></TranslateTransform>

                            </TextBlock.RenderTransform>

                </TextBlock>

 

            </l:TimeItem>

        </DataTemplate>

 

        private void TimeItem_SizeChanged(object sender, SizeChangedEventArgs e)

        {

            if (sender is TimeItem)

            {

                TextBlock tb1=(sender as TimeItem).FindName(“Text1”) as TextBlock;

                (tb1.RenderTransform as TranslateTransform).X = e.NewSize.Width + 10;

            }

        }

 

GTP.NET.SL 1.0.2.15

——————————————
——-GTP.NET.SL 1.0.2.15—-
——————————————
***************** Doc *****************
User: Hasse Date: 09-02-04 Time: 14:38
Added LICENSE.GTP.NET.SL.rtf

***************** Doc *****************
User: Hasse Date: 09-02-04 Time: 14:38
Added info.mht

***************** Doc *****************
User: Hasse Date: 09-02-04 Time: 14:38
Added gettingstarted.mht

***************** Doc *****************
User: Hasse Date: 09-02-04 Time: 14:38
Added GettingStarted.dxc

***************** Gantt *****************
User: Hasse Date: 09-01-31 Time: 21:28
Added LicenseCheckCall.cs

***************** ClientBin *****************
User: Hasse Date: 09-01-23 Time: 12:54
Deleted placeholder.txt

***************** Doc *****************
User: Hasse Date: 09-01-21 Time: 10:58
Added GTP.NET.SL.dxp

***************** Doc *****************
User: Hasse Date: 09-01-21 Time: 10:58
Added GTP.NET.SL.dxc

***************** Version 14 *****************
User: Hasse Date: 09-01-21 Time: 10:58
Added Doc

***************** GanttRow.cs *****************
***************** GTP.NET.SL.csproj *****************
***************** TimeItem.cs *****************
User: Hasse Date: 09-01-18 Time: 20:36
Checked in $/ph.NET/Components/GTP.NET.SL/Gantt
Comment:
UserDraw

***************** SLDev1 *****************
***************** SLDev1 *****************
User: Hasse Date: 09-01-18 Time: 20:25
Added SampleUsingToolkitTreeview.xaml

***************** MoveBetweenControls.xaml *****************
***************** MoveBetweenControls.xaml.cs *****************
***************** SampleChoose.xaml *****************
***************** TimeItem.cs *****************
***************** TimeItemLink.cs *****************
***************** TODOS.txt.txt *****************
***************** tankar.txt *****************
***************** Gantt.cs *****************
***************** GanttRow.cs *****************
User: Hasse Date: 09-01-18 Time: 17:01
Checked in $/ph.NET/Components/GTP.NET.SL/Gantt
Comment:
Cleans up links when removing time items

11149 : Is there a way to find if the time item is changing a row in the OnValueChangedGantTime event.

Question

 

My question is – Is there a way to find if the time item is changing a row in the OnValueChangedGantTime event.

The thing that I am doing cannot be done in or after the OnGantTimeChangeRow event.

I tried using the theGant.RowList.FindRowFromY(lngY).TreeNode.GridRowIndex but it does not work for some cases.

 

Answer

 

Use the theGant.RowList.FindRowFromY(IphGantX3.MousePositionGantArea.Y) if the returned row is different than the row currently owning the time item (theDataEntity_GantTime.Row) this is a move…

 

You can check this in the OnHintInfo event and put the information in a membervariable that you later read in the OnValueChangedGantTime event.

 

Check the argument theDataEntity!=null, and also check IphGantX3.GetMouseMoveMode==mmMove.

If both these are true, the user is moving a time item…

Use something like this then:

 _ThisIsARowMove=theGant.RowList.FindRowFromY(IphGantX3.MousePositionGantArea.Y)<>theDataEntity_GantTime.Row

 

 

10968 : Is there a 64 bit ActiveX phGantt control I can use with the application?

Question

We currently phGantt ActiveX control for one of our applications and just starting moving our application to 64 bit support.  Is there a 64 bit ActiveX phGantt control I can use with the application?

 

Answer

 

No we do not currently have a 64-bit edition of the phGantTimePackage. The 32-bit version will function on the 64-bit platforms.

We are currently unable to compile the phGantTimePackage for 64-bit since the Delphi compiler does not yet exist in a 64 bit version, it is planned for 2008 according to CodeGear.