Documentation
¶
Index ¶
- Variables
- func AddOneTimeTemplate(t OneTimeTemplateI)
- func AddTableTemplate(t TableTemplateI)
- func AddTypeTableTemplate(t TypeTableTemplateI)
- 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 WrapFormField(wrapper string, label string, forId string, child string) 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()
- type ConnectorParam
- type ControlCreationInfo
- type ControlDescription
- type ControlGenerator
- type ControlType
- type ImportPath
- type ImportType
- type Importer
- type OneTimeTemplateI
- type ProviderGenerator
- type TableTemplateI
- type TableType
- type Template
- type TypeTableTemplateI
- type TypeTableType
Constants ¶
This section is empty.
Variables ¶
var BuildingExamples bool
This is specific to automating the build of the examples database code. You do not normally need to set this.
var DefaultButtonCreator = "github.com/goradd/goradd/pkg/page/control/ButtonCreator"
DefaultButtonCreator defines what buttons will be used for generated forms.
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 DefaultDataPagerCreator = "github.com/goradd/goradd/pkg/page/control/DataPagerCreator"
DefaultButtonCreator defines what buttons will be used for generated forms.
var DefaultFormFieldCreator = "github.com/goradd/goradd/pkg/page/control/FormFieldWrapperCreator"
DefaultFormFieldCreator defines what form field wrapper will be used for generated controls.
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 OneTimeTemplates []OneTimeTemplateI
var TableTemplates []TableTemplateI
Will be populated by the individual templates found
var TypeTableTemplates []TypeTableTemplateI
Functions ¶
func AddOneTimeTemplate ¶
func AddOneTimeTemplate(t OneTimeTemplateI)
func AddTableTemplate ¶
func AddTableTemplate(t TableTemplateI)
func AddTypeTableTemplate ¶
func AddTypeTableTemplate(t TypeTableTemplateI)
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
Exports 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)
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 // TypeTables is a map of the type tables by database TypeTables map[string]map[string]TypeTableType // contains filtered or unexported fields }
func (*CodeGenerator) AddImportPaths ¶ added in v0.9.2
func (c *CodeGenerator) AddImportPaths(paths ...string)
AddImportPath 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()
Reset resets the internal information of the code generator. Call this just before generating a file.
type ConnectorParam ¶
type ControlCreationInfo ¶
type ControlCreationInfo string
TODO: Remove this. We just need a module path to the control I think. Also, explore making a default generator so that you don't need one for all controls, just ones that are different than normal.
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 }
func GetControlGenerator ¶
func GetControlGenerator(controlPath string) ControlGenerator
type ControlType ¶
type ControlType int
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
type TypeTableTemplateI ¶
type TypeTableTemplateI interface { GenerateTypeTable(codegen CodeGenerator, dd *db.Database, t TypeTableType, buf *bytes.Buffer) FileName(key string, t TypeTableType) string Overwrite() bool }