yvbolt/loadedDatabase.go

35 lines
812 B
Go
Raw Permalink Normal View History

package main
import (
"errors"
"github.com/ying32/govcl/vcl"
)
var ErrNavNotExist error = errors.New("The selected item no longer exists")
2024-06-27 23:34:00 +00:00
type contextAction struct {
Name string
Callback func(ndata *navData)
}
// loadedDatabase is a DB-agnostic interface for each loaded database.
type loadedDatabase interface {
DisplayName() string
DriverName() string
RootElement() *vcl.TTreeNode
RenderForNav(f *TMainForm, ndata *navData)
2024-06-15 00:14:11 +00:00
ExecQuery(query string, resultArea *vcl.TListView)
NavChildren(ndata *navData) ([]string, error)
2024-06-27 23:34:00 +00:00
NavContext(ndata *navData) ([]contextAction, error)
Keepalive(ndata *navData)
Close()
}
// navData is the .Data() pointer for each TTreeNode in the left-hand tree.
type navData struct {
ld loadedDatabase
childrenLoaded bool
bucketPath []string
}