Documentation ¶
Index ¶
- Variables
- func AddEnumTableTemplate(t EnumTableTemplateI)
- func AddOneTimeTemplate(t OneTimeTemplateI)
- func AddTableTemplate(t TableTemplateI)
- func AsConstant(i interface{}, typ query.GoColumnType) string
- func ControlPath(ref interface{}) string
- func DefaultControlType(ref interface{}) string
- func ExportCreator(creator interface{}) string
- func Generate()
- func RegisterControlGenerator(c ControlGenerator, path string)
- func RunGoImports(fileName string)
- type CodeGenerator
- func (c *CodeGenerator) AddImportPaths(paths ...string)
- func (c *CodeGenerator) AddObjectPath(p string)
- func (c *CodeGenerator) ImportPackage(imp string) string
- func (c *CodeGenerator) ImportStrings() (ret string)
- func (c *CodeGenerator) ObjectPackage(imp string) string
- func (c *CodeGenerator) ObjectType(p string) string
- func (c *CodeGenerator) ResetImports()
- func (c *CodeGenerator) WrapFormField(wrapperType string, label string, forId string, child string) string
- type ConnectorParam
- type ControlDescription
- type ControlGenerator
- type ControlType
- type EnumTableTemplateI
- type EnumTableType
- type ImportPath
- type ImportType
- type Importer
- type OneTimeTemplateI
- type ProviderGenerator
- type TableTemplateI
- type TableType
- type Template
Constants ¶
This section is empty.
Variables ¶
var BuildingExamples bool
BuildingExamples turns on the building of the templates for the examples code. This is specific to automating the build of the examples database code. You do not normally need to set this.
var DefaultButtonType = "github.com/goradd/goradd/pkg/page/control/button/Button"
DefaultButtonType defines what buttons will be used for generated forms. The button should also have a creator that has the type name DefaultButtonType + "Creator"
var DefaultControlTypeFunc = DefaultControlType
DefaultControlTypeFunc is the injected function that determines the default control type for a particular type of database column. It gets initialized here, so that if you want to replace it, you can first call the default function
var DefaultDataPagerType = "github.com/goradd/goradd/pkg/page/control/DataPager"
DefaultDataPagerType defines what pager will be used for generated forms. The pager should also have a creator that has the type name DefaultDataPagerType + "Creator"
var DefaultFormFieldWrapperType = "github.com/goradd/goradd/pkg/page/control/FormFieldWrapper"
DefaultFormFieldWrapperType defines what form control wrapper will be used for generated controls. The wrapper should also have a creator that has the type name DefaultFormFieldWrapperType + "Creator".
var DefaultStaticTextType = "github.com/goradd/goradd/pkg/page/control/Panel"
DefaultStaticTextType is the type of control to create to display content as static text rather than something editable.
var EnumTableTemplates []EnumTableTemplateI
var OneTimeTemplates []OneTimeTemplateI
var TableTemplates []TableTemplateI
Will be populated by the individual templates found
var Verbose = false
Verbose controls whether to output the list of files being written
Functions ¶
func AddEnumTableTemplate ¶ added in v0.27.0
func AddEnumTableTemplate(t EnumTableTemplateI)
func AddOneTimeTemplate ¶
func AddOneTimeTemplate(t OneTimeTemplateI)
func AddTableTemplate ¶
func AddTableTemplate(t TableTemplateI)
func AsConstant ¶
func AsConstant(i interface{}, typ query.GoColumnType) string
Returns the value formatted as a constant. Essentially this just surrounds strings in quotes.
func ControlPath ¶ added in v0.9.2
func ControlPath(ref interface{}) string
ControlPath returns the type of control for a column. It gets this first from the database description, and if there is no ControlPath indicated, then from the registered DefaultControlTypeFunc function.
func DefaultControlType ¶
func DefaultControlType(ref interface{}) string
DefaultControlType returns the default control type for the given database column These types are module paths to the control, and the generator will resolve those to figure out the import paths and package names
func ExportCreator ¶ added in v0.2.0
func ExportCreator(creator interface{}) string
ExportCreator export the given creator so that it can be embedded in a go file. Empty items are not exported Not all creators can be exported. This function is mainly a helper for code generation of controls. Specifically, events and actions do not export cleanly currently. But that should not be a problem for code generation.
func RegisterControlGenerator ¶
func RegisterControlGenerator(c ControlGenerator, path string)
func RunGoImports ¶ added in v0.17.3
func RunGoImports(fileName string)
Types ¶
type CodeGenerator ¶ added in v0.2.1
type CodeGenerator struct { // Tables is a map of the tables by database Tables map[string]map[string]TableType // EnumTables is a map of the enum tables by database EnumTables map[string]map[string]EnumTableType // contains filtered or unexported fields }
func (*CodeGenerator) AddImportPaths ¶ added in v0.9.2
func (c *CodeGenerator) AddImportPaths(paths ...string)
AddImportPaths adds an import path to the import path list. In particular, it will help manage the package aliases so the path can be referred to using the correct package name or package alias. Call this on all paths used by the file before calling ImportString.
func (*CodeGenerator) AddObjectPath ¶ added in v0.9.2
func (c *CodeGenerator) AddObjectPath(p string)
AddObjectPath adds an object path to the import path list. In particular, it will help manage the package list so the object can referred to using the correct package name or package alias. Call this on all object paths used by the form before calling ImportString.
func (*CodeGenerator) ImportPackage ¶ added in v0.9.2
func (c *CodeGenerator) ImportPackage(imp string) string
func (*CodeGenerator) ImportStrings ¶ added in v0.9.2
func (c *CodeGenerator) ImportStrings() (ret string)
ImportStrings returns strings to use in an import statement for all of the objects and imports entered
func (*CodeGenerator) ObjectPackage ¶ added in v0.9.2
func (c *CodeGenerator) ObjectPackage(imp string) string
func (*CodeGenerator) ObjectType ¶ added in v0.9.2
func (c *CodeGenerator) ObjectType(p string) string
ObjectType returns the string that should be used for an object type given its module path
func (*CodeGenerator) ResetImports ¶ added in v0.9.2
func (c *CodeGenerator) ResetImports()
ResetImports resets the internal information of the code generator. Call this just before generating a file.
func (*CodeGenerator) WrapFormField ¶ added in v0.28.0
func (c *CodeGenerator) WrapFormField(wrapperType string, label string, forId string, child string) string
WrapFormField returns a creator template for a field wrapper with type wrapperType.
child should be the creator template for the control that will be wrapped.
type ConnectorParam ¶
type ControlDescription ¶
type ControlDescription struct { Path string // Package is the package alias to be used when referring to the package the control is in. It is generated on a per-file basis. Package string // Imports is the list of imported packages that the control uses Imports []string ControlType string ControlName string ControlID string // default id to generate DefaultLabel string Generator ControlGenerator Connector string }
ControlDescription is matched with a Column below and provides additional information regarding how information in a column can be used to generate a default control to edit that information. It is specifically for code generation.
func (*ControlDescription) ControlIDConst ¶ added in v0.2.4
func (cd *ControlDescription) ControlIDConst() string
type ControlGenerator ¶
type ControlGenerator interface { SupportsColumn(ref interface{}) bool GenerateCreator(ref interface{}, desc *ControlDescription) string GenerateRefresh(ref interface{}, desc *ControlDescription) string GenerateUpdate(ref interface{}, desc *ControlDescription) string GenerateModifies(ref interface{}, desc *ControlDescription) string }
func GetControlGenerator ¶
func GetControlGenerator(controlPath string) ControlGenerator
type ControlType ¶
type ControlType int
type EnumTableTemplateI ¶ added in v0.27.0
type EnumTableTemplateI interface { GenerateEnumTable(codegen CodeGenerator, dd *db.Model, t EnumTableType, _w io.Writer) (err error) FileName(key string, t EnumTableType) string Overwrite() bool }
type EnumTableType ¶ added in v0.27.0
type ImportPath ¶ added in v0.2.3
type ImportType ¶
ImportType represents an import path required for a control. This is analyzed per-table.
type OneTimeTemplateI ¶
type ProviderGenerator ¶ added in v0.2.0
type ProviderGenerator interface {
GenerateProvider(ref interface{}, desc *ControlDescription) string
}
type TableTemplateI ¶
type TableType ¶
type TableType struct { *db.Table Imports []ImportType // contains filtered or unexported fields }
func (*TableType) ControlDescription ¶ added in v0.7.0
func (t *TableType) ControlDescription(ref interface{}) *ControlDescription