Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Status #10

Open
tinchodias opened this issue Sep 28, 2024 · 5 comments
Open

Status #10

tinchodias opened this issue Sep 28, 2024 · 5 comments

Comments

@tinchodias
Copy link
Contributor

We miss a clear way to inform what's current coverage as backend.

As you may know, each Spec-widget needs an adapter counterpart provided by the backend that implements it (instances the corresponding backend-widget with the required subscriptions to keep Spec-widget and backend-widget in sync along the lifecycle.

The methodology on Spec-Toplo up to now was more or less: first, choose a Spec widget without adapter; second, write a script in a workspace to open it using basic API; third, run Spec adapter tests and make some pass; go to first step.

A raw report we can get to check status is listing with Spec widgets have adapter. Currently:

  • 16 Toplo adapters DO exist: SpButtonBarPresenter, SpDropListPresenter, SpImagePresenter, SpLabelPresenter, SpMenuPresenter, SpWindowPresenter, SpButtonPresenter, SpCheckBoxPresenter, SpRadioButtonPresenter, SpToggleButtonPresenter, SpListPresenter, SpTextInputFieldPresenter, SpTextPresenter, SpMenuBarPresenter, SpDialogWindowPresenter and SpCodePresenter
  • 30 Toplo adapters DO NOT exist: SpActionBarPresenter, SpAthensPresenter, SpDiffPresenter, SpLinkPresenter, SpMenuGroupPresenter, SpMenuItemPresenter, SpNotebookPresenter, SpPopoverPresenter, SpProgressBarPresenter, SpSliderPresenter, SpSpinnerPresenter, SpStatusBarPresenter, SpToolbarButtonPresenter, SpToolbarPresenter, SpTransferPresenter, SpPatchPresenter, SpMenuButtonPresenter, SpComponentListPresenter, SpTablePresenter, SpTreePresenter, SpTreeTablePresenter, SpToolbarMenuButtonPresenter, SpToolbarPopoverButtonPresenter, SpToolbarToggleButtonPresenter, SpTickingWindowPresenter, SpPatchSideBySidePresenter, SpNumberInputFieldPresenter, SpSearchInputFieldPresenter, SpBlockedDialogWindowPresenter and SpModalWindowPresenter

Clearly part of the list are low-hanging fruits, others are complex at the point there isn't a Toplo widget for it. The most prominent: Table and Tree do not exist in Toplo.
Also Diff has some complexity, but it should be built on top of Album.

The following script generated the lists:

app := SpApplication new 
  useBackend: #Toplo;
  yourself.

allWidgets := ((SpAbstractWidgetPresenter allSubclasses
	reject: [ :eachClass | eachClass isAbstract ])
	select: [ :eachClass |
		#('Spec2-Core' 'Spec2-Code') anySatisfy: [ :eachPrefix |
			 eachClass packageName beginsWith: eachPrefix ] ]).

whetherImplemented := allWidgets groupedBy: [ :eachClass |
	Smalltalk hasClassNamed:
		(SpToploAdapterBindings new
			translateSymbol: eachClass adapterName) ].

(whetherImplemented at: true) size trace.
' Toplo adapters DO exist: ' trace.
(whetherImplemented at: true) asCommaStringAnd traceCr.

(whetherImplemented at: false) size trace.
' Toplo adapters DO NOT exist: ' trace.
(whetherImplemented at: false) asCommaStringAnd traceCr.
@Ducasse
Copy link

Ducasse commented Sep 29, 2024

Thanks martin. What is the next one on the list?

@tinchodias
Copy link
Contributor Author

Menu presenters. I have some local changes on this matter.
And these look simple: SpLinkPresenter, SpStatusBarPresenter, SpNumberInputFieldPresenter, SpSearchInputFieldPresenter, SpSliderPresenter, SpAthensPresenter

@Ducasse
Copy link

Ducasse commented Sep 29, 2024

Martin could you open a list of issues for each of the ones that can be done today so that people can know that they can help.

@tinchodias
Copy link
Contributor Author

@Ducasse --> #12

@Ducasse
Copy link

Ducasse commented Oct 1, 2024

Cool.
In the future I would like to ask Enzo to join forces.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants