diff options
| author | Jeff Carr <[email protected]> | 2025-09-16 23:12:39 -0500 | 
|---|---|---|
| committer | Jeff Carr <[email protected]> | 2025-09-16 23:12:39 -0500 | 
| commit | 9a93384ee30918a4d2185574aa56780b8aa2ccdc (patch) | |
| tree | cc625142734a2f06270cbdddfdda76e78a5ce1ba | |
| parent | 7d2c654cecc445f08d2b8bd192f4f23c6664ec41 (diff) | |
everything col switched to 'any' (?)
| -rw-r--r-- | generateGui.go | 232 | 
1 files changed, 33 insertions, 199 deletions
diff --git a/generateGui.go b/generateGui.go index b9cd5a5..02c62c8 100644 --- a/generateGui.go +++ b/generateGui.go @@ -52,36 +52,6 @@ func (pb *Files) makeGuiFile(pf *File) error {  			log.Printf("Added GUI functions for protobuf '%s' with record '%s' using mutex '%s'\n", msg.Name, msg.GuiVarName, color.Lockname)  		}  	} -	// os.Exit(-1) - -	/* -		guiMain(newf, pf.Bases.Name, pf.Base.Name) -		guiStringFuncs(newf, pf.Package, pf.Bases.Name, pf.Base.Name) - -		for _, v := range pf.Base.Vars { -			if v.IsRepeated { -				// can't work against slices -				continue -			} -			if v.VarType == "string" { -				log.Printf("make Add function here %s %s %s\n", pf.Bases.Name, pf.Base.Name, v.VarName) -				guiAddStringFunc(newf, pf.Bases.Name, pf.Base.Name, v.VarName) -				continue -			} -			if v.VarType == "int64" { -				log.Printf("make Add function here %s %s %s\n", pf.Bases.Name, pf.Base.Name, v.VarName) -				guiAddIntFunc(newf, pf.Bases.Name, pf.Base.Name, v.VarName) -				continue -			} -		} -		FRUITS := pf.Bases.Name -		FRUIT := pf.Base.Name -		fRUITS := untitle(pf.Bases.Name) -		fRUIT := untitle(pf.Base.Name) -		guiUpdate(newf, FRUITS, FRUIT) -		guiTableDelete(newf, FRUITS, FRUIT) -		guiTableCustom(newf, FRUITS, fRUITS, FRUIT, fRUIT) -	*/  	fmt.Fprintf(newf, "\n")  	fmt.Fprintf(newf, "// END GUI\n") @@ -175,12 +145,14 @@ func guiMain(w io.Writer, FRUITS string, FRUIT string) {  	fmt.Fprintln(w, "	return sf")  	fmt.Fprintln(w, "}")  	fmt.Fprintln(w, "") -	fmt.Fprintln(w, "func (t *"+FRUITS+"Table) AddButtonFunc(title string, f func(*"+FRUIT+") string) *"+FRUIT+"ButtonFunc {") +	fmt.Fprintln(w, "func (t *"+FRUITS+"Table) AddButtonFunc(title string, f func(*"+FRUIT+") string) *"+FRUIT+"AnyFunc {")  	fmt.Fprintln(w, "	t.pb.Order = append(t.pb.Order, title)")  	fmt.Fprintln(w, "") -	fmt.Fprintln(w, "	sf := new("+FRUIT+"ButtonFunc)") +	fmt.Fprintln(w, "	sf := new("+FRUIT+"AnyFunc)")  	fmt.Fprintln(w, "	sf.title = title") -	fmt.Fprintln(w, "	sf.f = f") +	fmt.Fprintln(w, "	sf.f = func(x *"+FRUIT+") any {") +	fmt.Fprintln(w, "		return f(x)") +	fmt.Fprintln(w, "	}")  	fmt.Fprintln(w, "	sf.order = t.order")  	fmt.Fprintln(w, "	sf.attr = new(guipb.ColAttr)")  	fmt.Fprintln(w, "	sf.attr.Width = int32(sf.Width)") @@ -188,23 +160,25 @@ func guiMain(w io.Writer, FRUITS string, FRUIT string) {  	fmt.Fprintln(w, "	sf.attr.Click = true")  	fmt.Fprintln(w, "")  	fmt.Fprintln(w, "	t.order += 1") -	fmt.Fprintln(w, "	t.buttonFuncs = append(t.buttonFuncs, sf)") +	fmt.Fprintln(w, "	t.anyFuncs = append(t.anyFuncs, sf)")  	fmt.Fprintln(w, "	return sf")  	fmt.Fprintln(w, "}")  	fmt.Fprintln(w, "") -	fmt.Fprintln(w, "func (t *"+FRUITS+"Table) AddIntFunc(title string, f func(*"+FRUIT+") int) *"+FRUIT+"IntFunc {") +	fmt.Fprintln(w, "func (t *"+FRUITS+"Table) AddIntFunc(title string, f func(*"+FRUIT+") int) *"+FRUIT+"AnyFunc {")  	fmt.Fprintln(w, "	t.pb.Order = append(t.pb.Order, title)")  	fmt.Fprintln(w, "") -	fmt.Fprintln(w, "	sf := new("+FRUIT+"IntFunc)") +	fmt.Fprintln(w, "	sf := new("+FRUIT+"AnyFunc)")  	fmt.Fprintln(w, "	sf.title = title") -	fmt.Fprintln(w, "	sf.f = f") +	fmt.Fprintln(w, "	sf.f = func(x *"+FRUIT+") any {") +	fmt.Fprintln(w, "		return f(x)") +	fmt.Fprintln(w, "	}")  	fmt.Fprintln(w, "	sf.order = t.order")  	fmt.Fprintln(w, "	sf.attr = new(guipb.ColAttr)")  	fmt.Fprintln(w, "	sf.attr.Width = int32(sf.Width)")  	fmt.Fprintln(w, "	sf.attr.Type = guipb.ColAttr_INT")  	fmt.Fprintln(w, "")  	fmt.Fprintln(w, "	t.order += 1") -	fmt.Fprintln(w, "	t.intFuncs = append(t.intFuncs, sf)") +	fmt.Fprintln(w, "	t.anyFuncs = append(t.anyFuncs, sf)")  	fmt.Fprintln(w, "	return sf")  	fmt.Fprintln(w, "}")  	fmt.Fprintln(w, "") @@ -295,9 +269,9 @@ func guiMain(w io.Writer, FRUITS string, FRUIT string) {  	fmt.Fprintln(w, "	x           *"+FRUITS+"")  	fmt.Fprintln(w, "	hostnames   []string")  	fmt.Fprintln(w, "") -	fmt.Fprintln(w, "	stringFuncs []*"+FRUIT+"StringFunc") -	fmt.Fprintln(w, "	intFuncs    []*"+FRUIT+"IntFunc") -	fmt.Fprintln(w, "	buttonFuncs []*"+FRUIT+"ButtonFunc") +	fmt.Fprintln(w, "	// stringFuncs []*"+FRUIT+"StringFunc") +	fmt.Fprintln(w, "	// intFuncs    []*"+FRUIT+"IntFunc") +	fmt.Fprintln(w, "	// buttonFuncs []*"+FRUIT+"ButtonFunc")  	fmt.Fprintln(w, "	anyFuncs    []*"+FRUIT+"AnyFunc")  	fmt.Fprintln(w, "")  	fmt.Fprintln(w, "	CustomFunc  func(*"+FRUIT+")") @@ -306,76 +280,6 @@ func guiMain(w io.Writer, FRUITS string, FRUIT string) {  }  func guiStringFuncs(w io.Writer, ZOOPB string, FRUITS string, FRUIT string) { -	fmt.Fprintln(w, "func (mt *"+FRUITS+"Table) doStringFunc(name string) bool {") -	fmt.Fprintln(w, "	for _, sf := range mt.stringFuncs {") -	fmt.Fprintln(w, "		if sf.title != name {") -	fmt.Fprintln(w, "			continue") -	fmt.Fprintln(w, "		}") -	fmt.Fprintln(w, "		// log.Info(\""+ZOOPB+": found stringfunc name:\", name)") -	fmt.Fprintln(w, "		r := new(guipb.StringCol)") -	fmt.Fprintln(w, "		r.Header = new(guipb.Widget)") -	fmt.Fprintln(w, "		r.Header.Name = name") -	fmt.Fprintln(w, "		r.Attr = new(guipb.ColAttr)") -	fmt.Fprintln(w, "		r.Attr.Width = int32(sf.Width)") -	fmt.Fprintln(w, "		r.Attr.Type = guipb.ColAttr_STRING") -	fmt.Fprintln(w, "") -	fmt.Fprintln(w, "		for m := range mt.x.IterAll() {") -	fmt.Fprintln(w, "			r.Vals = append(r.Vals, sf.f(m))") -	fmt.Fprintln(w, "			// log.Info(\""+ZOOPB+": adding\", name, r.Vals)") -	fmt.Fprintln(w, "		}") -	fmt.Fprintln(w, "		mt.pb.StringCols = append(mt.pb.StringCols, r)") -	fmt.Fprintln(w, "		return true") -	fmt.Fprintln(w, "	}") -	fmt.Fprintln(w, "	return false") -	fmt.Fprintln(w, "}") -	fmt.Fprintln(w, "") -	fmt.Fprintln(w, "func (mt *"+FRUITS+"Table) doButtonFunc(name string) bool {") -	fmt.Fprintln(w, "	for _, sf := range mt.buttonFuncs {") -	fmt.Fprintln(w, "		if sf.title != name {") -	fmt.Fprintln(w, "			continue") -	fmt.Fprintln(w, "		}") -	fmt.Fprintln(w, "		// log.Info(\""+ZOOPB+": found stringfunc name:\", name)") -	fmt.Fprintln(w, "		r := new(guipb.ButtonCol)") -	fmt.Fprintln(w, "		r.Header = new(guipb.Widget)") -	fmt.Fprintln(w, "		r.Header.Name = name") -	fmt.Fprintln(w, "		r.Attr = new(guipb.ColAttr)") -	fmt.Fprintln(w, "		r.Attr.Width = int32(sf.Width)") -	fmt.Fprintln(w, "		r.Attr.Type = guipb.ColAttr_STRING") -	fmt.Fprintln(w, "		r.Attr.Click = true") -	fmt.Fprintln(w, "") -	fmt.Fprintln(w, "		for m := range mt.x.IterAll() {") -	fmt.Fprintln(w, "			r.Vals = append(r.Vals, sf.f(m))") -	fmt.Fprintln(w, "			// log.Info(\""+ZOOPB+": adding\", name, r.Vals)") -	fmt.Fprintln(w, "		}") -	fmt.Fprintln(w, "		mt.pb.ButtonCols = append(mt.pb.ButtonCols, r)") -	fmt.Fprintln(w, "		return true") -	fmt.Fprintln(w, "	}") -	fmt.Fprintln(w, "	return false") -	fmt.Fprintln(w, "}") -	fmt.Fprintln(w, "") -	fmt.Fprintln(w, "func (mt *"+FRUITS+"Table) doIntFunc(name string) bool {") -	fmt.Fprintln(w, "	for _, sf := range mt.intFuncs {") -	fmt.Fprintln(w, "		if sf.title != name {") -	fmt.Fprintln(w, "			continue") -	fmt.Fprintln(w, "		}") -	fmt.Fprintln(w, "		// log.Info(\""+ZOOPB+": found intfunc name:\", name)") -	fmt.Fprintln(w, "		r := new(guipb.IntCol)") -	fmt.Fprintln(w, "		r.Header = new(guipb.Widget)") -	fmt.Fprintln(w, "		r.Header.Name = name") -	fmt.Fprintln(w, "		r.Attr = new(guipb.ColAttr)") -	fmt.Fprintln(w, "		r.Attr.Width = int32(sf.Width)") -	fmt.Fprintln(w, "		r.Attr.Type = guipb.ColAttr_INT") -	fmt.Fprintln(w, "") -	fmt.Fprintln(w, "		for m := range mt.x.IterAll() {") -	fmt.Fprintln(w, "			r.Vals = append(r.Vals, int64(sf.f(m)))") -	fmt.Fprintln(w, "			// log.Info(\""+ZOOPB+": adding\", name, r.Vals)") -	fmt.Fprintln(w, "		}") -	fmt.Fprintln(w, "		mt.pb.IntCols = append(mt.pb.IntCols, r)") -	fmt.Fprintln(w, "		return true") -	fmt.Fprintln(w, "	}") -	fmt.Fprintln(w, "	return false") -	fmt.Fprintln(w, "}") -	fmt.Fprintln(w, "")  	fmt.Fprintln(w, "func (mt *"+FRUITS+"Table) doAnyFunc(name string) bool {")  	fmt.Fprintln(w, "	for _, sf := range mt.anyFuncs {")  	fmt.Fprintln(w, "		if sf.title != name {") @@ -385,9 +289,6 @@ func guiStringFuncs(w io.Writer, ZOOPB string, FRUITS string, FRUIT string) {  	fmt.Fprintln(w, "		r.Header = new(guipb.Widget)")  	fmt.Fprintln(w, "		r.Header.Name = name")  	fmt.Fprintln(w, "		r.Attr = proto.Clone(sf.attr).(*guipb.ColAttr)") -	fmt.Fprintln(w, "		// r.Attr = new(guipb.ColAttr)") -	fmt.Fprintln(w, "		// r.Attr.Width = int32(sf.Width)") -	fmt.Fprintln(w, "		// r.Attr.Type = guipb.ColAttr_TIME")  	fmt.Fprintln(w, "")  	fmt.Fprintln(w, "		for m := range mt.x.IterAll() {") @@ -401,19 +302,11 @@ func guiStringFuncs(w io.Writer, ZOOPB string, FRUITS string, FRUIT string) {  	fmt.Fprintln(w, "				r.Vals = append(r.Vals, anyProto)")  	fmt.Fprintln(w, "				// return col.Vals[row] true")  	fmt.Fprintln(w, "			case guipb.ColAttr_INT:") -	fmt.Fprintln(w, "			//	var finalInt int32") -	fmt.Fprintln(w, "			//	// 1. Check if the Any contains an Int32Value") -	fmt.Fprintln(w, "			//	if anyVal.MessageIs(&wrapperspb.Int32Value{}) {") -	fmt.Fprintln(w, "			//		var intValue wrapperspb.Int32Value") -	fmt.Fprintln(w, "			//		// 2. Unmarshal into the wrapper") -	fmt.Fprintln(w, "			//		if err := anyVal.UnmarshalTo(&intValue); err == nil {") -	fmt.Fprintln(w, "			//			// 3. Get the native Go int32 from the wrapper") -	fmt.Fprintln(w, "			//			finalInt = intValue.GetValue()") -	fmt.Fprintln(w, "			//		}") -	fmt.Fprintln(w, "			//	}") -	fmt.Fprintln(w, "") -	sfmt := "\"" + "%" + "d" + "\"" -	fmt.Fprintln(w, "			//	return fmt.Sprintf("+sfmt+", finalInt), true") +	fmt.Fprintln(w, "				var finalInt int") +	fmt.Fprintln(w, "				finalInt = t.(int)") +	fmt.Fprintln(w, "				intVal := wrapperspb.Int32(int32(finalInt))") +	fmt.Fprintln(w, "				anyProto, _ := anypb.New(intVal)") +	fmt.Fprintln(w, "				r.Vals = append(r.Vals, anyProto)")  	fmt.Fprintln(w, "			case guipb.ColAttr_DURATION:")  	fmt.Fprintln(w, "			case guipb.ColAttr_TIME:")  	fmt.Fprintln(w, "				var goTime time.Time") @@ -438,15 +331,15 @@ func guiStringFuncs(w io.Writer, ZOOPB string, FRUITS string, FRUIT string) {  	fmt.Fprintln(w, "")  	fmt.Fprintln(w, "func (mt *"+FRUITS+"Table) MakeTable() {")  	fmt.Fprintln(w, "	for _, name := range mt.pb.Order {") -	fmt.Fprintln(w, "		if mt.doStringFunc(name) {") -	fmt.Fprintln(w, "			continue") -	fmt.Fprintln(w, "		}") -	fmt.Fprintln(w, "		if mt.doIntFunc(name) {") -	fmt.Fprintln(w, "			continue") -	fmt.Fprintln(w, "		}") -	fmt.Fprintln(w, "		if mt.doButtonFunc(name) {") -	fmt.Fprintln(w, "			continue") -	fmt.Fprintln(w, "		}") +	fmt.Fprintln(w, "		// if mt.doStringFunc(name) {") +	fmt.Fprintln(w, "		// 	continue") +	fmt.Fprintln(w, "		// }") +	fmt.Fprintln(w, "		// if mt.doIntFunc(name) {") +	fmt.Fprintln(w, "		// 	continue") +	fmt.Fprintln(w, "		// }") +	fmt.Fprintln(w, "		// if mt.doButtonFunc(name) {") +	fmt.Fprintln(w, "		// 	continue") +	fmt.Fprintln(w, "		// }")  	fmt.Fprintln(w, "		if mt.doAnyFunc(name) {")  	fmt.Fprintln(w, "			continue")  	fmt.Fprintln(w, "		}") @@ -466,22 +359,12 @@ func guiAddStringFunc(w io.Writer, FRUITS string, FRUIT string, BRAND string) {  func guiAddIntFunc(w io.Writer, FRUITS string, FRUIT string, BRAND string) {  	fmt.Fprintln(w, "") -	fmt.Fprintln(w, "func (t *"+FRUITS+"Table) Add"+BRAND+"() {") -	fmt.Fprintln(w, "	t.AddIntFunc(\""+BRAND+"\", func(m *"+FRUIT+") int {") +	fmt.Fprintln(w, "func (t *"+FRUITS+"Table) Add"+BRAND+"() *"+FRUIT+"AnyFunc {") +	fmt.Fprintln(w, "	custf := t.AddIntFunc(\""+BRAND+"\", func(m *"+FRUIT+") int {")  	fmt.Fprintln(w, "		return int(m."+BRAND+")")  	fmt.Fprintln(w, "	})") +	fmt.Fprintln(w, "	return custf")  	fmt.Fprintln(w, "}") -	/* -		// examples of what these look like -		fmt.Fprintln(w, "func (t *"+FRUITS+"Table) AddMemory() {") -		fmt.Fprintln(w, "	t.pb.Order = append(t.pb.Order, \"Memory\")") -		fmt.Fprintln(w, "}") -		fmt.Fprintln(w, "") -		fmt.Fprintln(w, "func (t *"+FRUITS+"Table) AddCpus() {") -		fmt.Fprintln(w, "	t.pb.Order = append(t.pb.Order, \"Cpus\")") -		fmt.Fprintln(w, "}") -		fmt.Fprintln(w, "") -	*/  }  func guiUpdate(w io.Writer, FRUITS string, FRUIT string) { @@ -491,21 +374,6 @@ func guiUpdate(w io.Writer, FRUITS string, FRUIT string) {  	fmt.Fprintln(w, "")  	fmt.Fprintln(w, "// START TABLE UPDATE") -	fmt.Fprintln(w, "func (mt *"+FRUITS+"Table) todoUpdate() {") -	fmt.Fprintln(w, "	for _, name := range mt.pb.Order {") -	fmt.Fprintln(w, "		// log.Info(\""+FRUIT+"pb: trying to update row()\", name)") -	fmt.Fprintln(w, "		if mt.updateStringFunc(name) {") -	fmt.Fprintln(w, "			continue") -	fmt.Fprintln(w, "		}") -	fmt.Fprintln(w, "		/*") -	fmt.Fprintln(w, "			if mt.updateIntFunc(name) {") -	fmt.Fprintln(w, "				continue") -	fmt.Fprintln(w, "			}") -	fmt.Fprintln(w, "		*/") -	fmt.Fprintln(w, "	}") -	fmt.Fprintln(w, "	// mt.dumpStringFunc(\"Hostname\")") -	fmt.Fprintln(w, "	mt.parent.UpdateTable(mt.pb)") -	fmt.Fprintln(w, "}")  	fmt.Fprintln(w, "")  	fmt.Fprintln(w, "func (mt *"+FRUITS+"Table) dumpStringFunc(name string) {")  	fmt.Fprintln(w, "	for i, r := range mt.pb.StringCols {") @@ -517,40 +385,6 @@ func guiUpdate(w io.Writer, FRUITS string, FRUIT string) {  	fmt.Fprintln(w, "	}")  	fmt.Fprintln(w, "}")  	fmt.Fprintln(w, "") -	fmt.Fprintln(w, "func (mt *"+FRUITS+"Table) updateStringFunc(name string) bool {") -	fmt.Fprintln(w, "	// log.Info(\"LOOKING FOR STRING row\", name)") -	fmt.Fprintln(w, "	var found *guipb.StringCol") -	fmt.Fprintln(w, "	for _, r := range mt.pb.StringCols {") -	fmt.Fprintln(w, "		// log.Info(\"could use\", i, r.Header.Name, \"for name =\", name)") -	fmt.Fprintln(w, "		if r.Header.Name == name {") -	fmt.Fprintln(w, "			// log.Info(\"found row\", i, r.Header.Name)") -	fmt.Fprintln(w, "			found = r") -	fmt.Fprintln(w, "			break") -	fmt.Fprintln(w, "		}") -	fmt.Fprintln(w, "	}") -	fmt.Fprintln(w, "	if found == nil {") -	fmt.Fprintln(w, "		log.Info(\"did not find string row\", name)") -	fmt.Fprintln(w, "		return false") -	fmt.Fprintln(w, "	}") -	fmt.Fprintln(w, "	for _, sf := range mt.stringFuncs {") -	fmt.Fprintln(w, "		if sf.title != name {") -	fmt.Fprintln(w, "			continue") -	fmt.Fprintln(w, "		}") -	fmt.Fprintln(w, "		// log.Info(\""+FRUIT+"pb: starting\", name, found.Vals)") -	fmt.Fprintln(w, "		for i, _ := range found.Vals {") -	fmt.Fprintln(w, "			tmp := sf.f(mt.x."+FRUITS+"[i])") -	fmt.Fprintln(w, "			if tmp == \"www.wit.com\" {") -	fmt.Fprintln(w, "				log.Info(\"virtpb: FOUND WWW\", i)") -	fmt.Fprintln(w, "				tmp = \"new.www\"") -	fmt.Fprintln(w, "			}") -	fmt.Fprintln(w, "			found.Vals[i] = tmp") -	fmt.Fprintln(w, "		}") -	fmt.Fprintln(w, "		// log.Info(\""+FRUIT+"pb: ending\", name, found.Vals)") -	fmt.Fprintln(w, "		return true") -	fmt.Fprintln(w, "	}") -	fmt.Fprintln(w, "	return false") -	fmt.Fprintln(w, "}") -	fmt.Fprintln(w, "")  }  func guiTableDelete(w io.Writer, FRUITS string, FRUIT string) { @@ -571,7 +405,7 @@ func guiTableCustom(w io.Writer, FRUITS string, fRUITS string, FRUIT string, fRU  	fmt.Fprintln(w, "	row := mt.x."+FRUITS+"[w.Location.Y-1]")  	fmt.Fprintln(w, "	// log.Info(\"got to "+fRUITS+"Custom() with\", w.Location.X, w.Location.Y-1)")  	fmt.Fprintln(w, "") -	fmt.Fprintln(w, "	for _, sf := range mt.buttonFuncs {") +	fmt.Fprintln(w, "	for _, sf := range mt.anyFuncs {")  	fmt.Fprintln(w, "		if sf.order == int(w.Location.X) {")  	fmt.Fprintln(w, "			// log.Info(\"found order\", sf.order)")  	fmt.Fprintln(w, "			if sf.Custom != nil {")  | 
