|
From: Andrea P. <and...@us...> - 2004-09-10 10:28:13
|
Update of /cvsroot/instantobjects/Source/Design In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv31902 Modified Files: InstantAttributeEditor.dfm InstantAttributeEditor.pas Log Message: External TParts and External TReferences support Index: InstantAttributeEditor.dfm =================================================================== RCS file: /cvsroot/instantobjects/Source/Design/InstantAttributeEditor.dfm,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** InstantAttributeEditor.dfm 20 Jul 2004 11:07:49 -0000 1.2 --- InstantAttributeEditor.dfm 10 Sep 2004 10:27:39 -0000 1.3 *************** *** 1,7 **** inherited InstantAttributeEditorForm: TInstantAttributeEditorForm ! Left = 388 ! Top = 255 Width = 249 ! Height = 280 Caption = 'Attribute Editor' ParentFont = True --- 1,7 ---- inherited InstantAttributeEditorForm: TInstantAttributeEditorForm ! Left = 795 ! Top = 191 Width = 249 ! Height = 386 Caption = 'Attribute Editor' ParentFont = True *************** *** 12,21 **** inherited EditPanel: TPanel Width = 241 ! Height = 215 object PageControl: TPageControl Left = 4 Top = 4 Width = 233 ! Height = 207 ActivePage = DefinitionSheet Align = alClient --- 12,21 ---- inherited EditPanel: TPanel Width = 241 ! Height = 328 object PageControl: TPageControl Left = 4 Top = 4 Width = 233 ! Height = 320 ActivePage = DefinitionSheet Align = alClient *************** *** 63,66 **** --- 63,90 ---- FocusControl = SizeEdit end + object ExternalLinkedNameLabel: TLabel + Left = 8 + Top = 248 + Width = 92 + Height = 13 + Caption = 'Exter&nal Link Name' + FocusControl = ExternalLinkedNameEdit + end + object ExternalStoredNameLabel: TLabel + Left = 8 + Top = 208 + Width = 109 + Height = 13 + Caption = '&External Storage Name' + FocusControl = ExternalStoredNameEdit + end + object IsExternalLabel: TLabel + Left = 8 + Top = 168 + Width = 49 + Height = 13 + Caption = 'Is Exte&rnal' + FocusControl = IsExternalEdit + end object NameEdit: TDBEdit Left = 8 *************** *** 117,120 **** --- 141,180 ---- TabOrder = 3 end + object ExternalLinkedNameEdit: TDBComboBox + Left = 8 + Top = 264 + Width = 210 + Height = 21 + DataField = 'ExternalLinkedName' + DataSource = SubjectSource + ItemHeight = 13 + Sorted = True + TabOrder = 7 + OnChange = ExternalLinkedNameEditChange + OnEnter = ExternalLinkedNameEditEnter + end + object ExternalStoredNameEdit: TDBEdit + Left = 8 + Top = 224 + Width = 209 + Height = 21 + DataField = 'ExternalStoredName' + DataSource = SubjectSource + TabOrder = 6 + OnChange = ExternalStoredNameEditChange + end + object IsExternalEdit: TDBComboBox + Left = 7 + Top = 184 + Width = 210 + Height = 21 + Style = csDropDownList + DataField = 'IsExternal' + DataSource = SubjectSource + ItemHeight = 13 + Sorted = True + TabOrder = 5 + OnChange = IsExternalEditChange + end end object AccessSheet: TTabSheet *************** *** 329,333 **** end inherited BottomPanel: TPanel ! Top = 215 Width = 241 inherited ButtonPanel: TPanel --- 389,393 ---- end inherited BottomPanel: TPanel ! Top = 328 Width = 241 inherited ButtonPanel: TPanel *************** *** 338,349 **** OnInitField = SubjectExposerInitField OnTranslate = SubjectExposerTranslate ! Top = 222 end inherited SubjectSource: TDataSource ! Top = 222 end object TypeImages: TImageList ! Left = 197 ! Top = 6 end end --- 398,411 ---- OnInitField = SubjectExposerInitField OnTranslate = SubjectExposerTranslate ! Left = 6 ! Top = 324 end inherited SubjectSource: TDataSource ! Left = 46 ! Top = 324 end object TypeImages: TImageList ! Left = 84 ! Top = 324 end end Index: InstantAttributeEditor.pas =================================================================== RCS file: /cvsroot/instantobjects/Source/Design/InstantAttributeEditor.pas,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** InstantAttributeEditor.pas 29 Jul 2004 20:43:15 -0000 1.4 --- InstantAttributeEditor.pas 10 Sep 2004 10:27:39 -0000 1.5 *************** *** 88,91 **** --- 88,97 ---- DefaultValueLabel: TLabel; DefaultValueEdit: TDBEdit; + ExternalLinkedNameEdit: TDBComboBox; + ExternalLinkedNameLabel: TLabel; + ExternalStoredNameEdit: TDBEdit; + ExternalStoredNameLabel: TLabel; + IsExternalEdit: TDBComboBox; + IsExternalLabel: TLabel; procedure FormCreate(Sender: TObject); procedure NameEditChange(Sender: TObject); *************** *** 99,102 **** --- 105,112 ---- var Value: Variant; Write: Boolean); procedure TypeEditClick(Sender: TObject); + procedure IsExternalEditChange(Sender: TObject); + procedure ExternalStoredNameEditChange(Sender: TObject); + procedure ExternalLinkedNameEditChange(Sender: TObject); + procedure ExternalLinkedNameEditEnter(Sender: TObject); private FLimited: Boolean; *************** *** 109,112 **** --- 119,123 ---- protected procedure LoadClasses; + procedure LoadClassAttributes; procedure LoadData; override; procedure LoadEnums(TypeInfo: PTypeInfo; Items: TStrings; *************** *** 114,118 **** --- 125,131 ---- procedure LoadTypes; procedure LoadVisibilities; + procedure LoadIsExternal; procedure PopulateClasses; + procedure PopulateClassAttributes; procedure SaveData; override; procedure SubjectChanged; override; *************** *** 228,231 **** --- 241,250 ---- end; + procedure TInstantAttributeEditorForm.LoadIsExternal; + begin + with IsExternalEdit do + ItemIndex := SubjectExposer.GetFieldStrings(Field, Items); + end; + procedure TInstantAttributeEditorForm.LoadTypes; var *************** *** 284,287 **** --- 303,307 ---- SubjectExposer.AssignFieldValue(Field, Text); UpdateControls; + LoadClassAttributes; end; *************** *** 372,375 **** --- 392,396 ---- LoadTypes; LoadVisibilities; + LoadIsExternal; UpdateControls; end; *************** *** 403,407 **** TranslateEnum('at') else if Field.FieldName = 'Visibility' then ! TranslateEnum('vi'); end; --- 424,430 ---- TranslateEnum('at') else if Field.FieldName = 'Visibility' then ! TranslateEnum('vi') ! else if Field.FieldName = 'IsExternal' then ! TranslateEnum('ce'); end; *************** *** 411,414 **** --- 434,438 ---- SubjectExposer.AssignFieldValue(Field, Text); LoadVisibilities; + LoadIsExternal; UpdateControls; end; *************** *** 435,441 **** var ! HasName, HasClass: Boolean; ! IsComplex, IsContainer, IsMaskable, IsString, IsValid: Boolean; begin HasName := NameEdit.Text <> ''; HasClass := ObjectClassEdit.Text <> ''; --- 459,470 ---- var ! HasName, HasClass, HasExternalStoredName, HasExternalLinkedName: Boolean; ! IsComplex, IsContainer, IsExternal, IsMaskable, IsString, IsValid: Boolean; begin + if (Subject.AttributeType<>atParts) and (Subject.AttributeType<>atReferences) then + Subject.IsExternal := ceNo; + if Subject.IsExternal = ceLinked then Subject.ExternalStoredName := ''; + if Subject.IsExternal = ceStored then Subject.ExternalLinkedName := ''; + HasName := NameEdit.Text <> ''; HasClass := ObjectClassEdit.Text <> ''; *************** *** 443,448 **** IsMaskable := Subject.AttributeType in [atString, atMemo, atFloat, atCurrency, atInteger]; IsContainer := Subject.IsContainer; IsString := Subject.AttributeType in [atString, atMemo]; ! IsValid := HasName and (not IsComplex or HasClass); DisableSubControls(DefinitionSheet, Limited); --- 472,482 ---- IsMaskable := Subject.AttributeType in [atString, atMemo, atFloat, atCurrency, atInteger]; IsContainer := Subject.IsContainer; + HasExternalStoredName := ExternalStoredNameEdit.Text <> ''; + HasExternalLinkedName := ExternalLinkedNameEdit.Text <> ''; + + IsExternal := Subject.IsExternal <> ceNo; IsString := Subject.AttributeType in [atString, atMemo]; ! IsValid := HasName and (not IsComplex or HasClass) and ! (not IsExternal or (HasExternalStoredName or HasExternalLinkedName) ); DisableSubControls(DefinitionSheet, Limited); *************** *** 462,468 **** EnableCtrl(MethodInsertCheckBox, IsContainer); EnableCtrl(MethodRemoveCheckBox, IsContainer); end; ! EnableCtrl(StorageNameLabel, True); ! EnableCtrl(StorageNameEdit, True); EnableCtrl(SizeLabel, IsString); EnableCtrl(SizeEdit, IsString); --- 496,511 ---- EnableCtrl(MethodInsertCheckBox, IsContainer); EnableCtrl(MethodRemoveCheckBox, IsContainer); + + EnableCtrl(IsExternalEdit, IsContainer); + EnableCtrl(IsExternalLabel, IsContainer); end; ! EnableCtrl(StorageNameLabel, not (IsContainer and IsExternal) ); ! EnableCtrl(StorageNameEdit, not (IsContainer and IsExternal) ); ! ! EnableCtrl(ExternalLinkedNameLabel, IsContainer and (Subject.IsExternal=ceLinked) ); ! EnableCtrl(ExternalLinkedNameEdit, IsContainer and (Subject.IsExternal=ceLinked) ); ! EnableCtrl(ExternalStoredNameLabel, IsContainer and (Subject.IsExternal=ceStored) ); ! EnableCtrl(ExternalStoredNameEdit, IsContainer and (Subject.IsExternal=ceStored) ); ! EnableCtrl(SizeLabel, IsString); EnableCtrl(SizeEdit, IsString); *************** *** 474,476 **** --- 517,570 ---- end; + procedure TInstantAttributeEditorForm.IsExternalEditChange( + Sender: TObject); + begin + with IsExternalEdit do + SubjectExposer.AssignFieldValue(Field, Text); + UpdateControls; + end; + + procedure TInstantAttributeEditorForm.ExternalStoredNameEditChange( + Sender: TObject); + begin + UpdateControls; + end; + + procedure TInstantAttributeEditorForm.ExternalLinkedNameEditChange( + Sender: TObject); + begin + UpdateControls; + end; + + procedure TInstantAttributeEditorForm.LoadClassAttributes; + var + I:integer; + begin + with ExternalLinkedNameEdit do + begin + Items.BeginUpdate; + try + Items.Clear; + if Assigned(FModel) then + if Assigned(FModel.FindClass(ObjectClassEdit.Text)) then + for I := 0 to Pred(FModel.FindClass(ObjectClassEdit.Text).AttributeCount) do + Items.Add(FModel.FindClass(ObjectClassEdit.Text).Attributes[i].Name); + finally + Items.EndUpdate; + end; + end; + end; + + procedure TInstantAttributeEditorForm.PopulateClassAttributes; + begin + if ExternalLinkedNameEdit.Items.Count = 0 then + LoadClassAttributes; + end; + + procedure TInstantAttributeEditorForm.ExternalLinkedNameEditEnter( + Sender: TObject); + begin + PopulateClassAttributes; + end; + end. |