Giter Club home page Giter Club logo

rhizome-gui's People

Contributors

kiracorbett avatar ybakos avatar

Stargazers

 avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

rhizome-gui's Issues

ThingWorld: Display all children

Currently, all children (each ThingCard) is in a Stack which prevents us from seeing the remaining children. Either create a custom way to display all the children or wrap in the MoveableThing().

RhizomeScreen: display a centered ThingCard

@KiraCorbett The latest implementation of RhizomeScreen doesn't make sense to me. Currently, it has logic for "zoomed out" or not, a visibilityTag, and makes a decision about displaying either ThingWorld or CenterThingScreen.

Focus on the following first, before doing anything else:
RhizomeScreen should only display a single ThingCard in the middle of the screen. eg:

child: ThingCard(...)

That simple.

ThingCard: consider a StatelessWidget

It doesn't seem link anything within a ThingCard changes over time.... it will always just display a visual representation of its Thing.

Perhaps consider simplifying this to be a StatelessWidget instead of a stateful one.

(Pro tip: Always reach for stateless widgets first. Convert them to stateful once you reach a situation that begs for changing state.)

(Pro tip: When creating StatelessWidget classes in VS Code, start by typing stl and hit <Enter>. Should generate a whole snippet/template for the class definition.)

ThingScreen: Multiple tags/targets duplicated

If there is an object in the Rhizome that has multiple tags or targets associated with it, the tags/targets are duplicated in the list. For an example, this object should only display "Ayrton Senna" and "Formula 1" once but it begins to repeat it on the right hand side of the top row.

image

CenterThingScreen: delete

There is a widget named center_thing_screen that isn't a screen at all. And it is not necessary. Remove it.

ThingCardScreen: Replace parameterized Rhizome member with singleton

We now have a simple way of "grabbing the Rhizome" from anywhere, via RhizomeManager.getInstance(). So, there's no need to pass the Rhizome instance around all over the place. To begin replacing all passed-around-instances with the singleton, start with ThingCardscreen.

  • Remove the parameter from the constructor.
  • Explicitly initialize the rhizome property with the instance obtained via RhizomeManager.getInstance().

Then, look for other opportunities to do the same elsewhere. (After ThingCardScreen, consider ThingCard, and then HomeScreen.)

See #13 and Lines 6 and 8 of 943de81#diff-a98f5b6dfd4c37c601951660102255e5627fa042e22379dfa2e200167bea74a8R6 .

Screens: Create contextualize_screen.dart

This screen should stand on its own. Do not worry about how to get here. When we see it, it should just

  • show a ThingCard in the middle
  • show ThingCards for its tags above it
  • show ThingCards for its targets below it
  • show a ThingCard for a "person" to the right of it

HomeScreen: Remove unnecessary call to setState

In Flutter, we should use stateless widgets whenever the state (the data that the screen relies on and displays) changes. In order for our state/data changes to be displayed on that one screen, we must wrap those changes in setState.

HomeScreen has a call to setState that doesn't make sense: it is being called in _displayCreateInformationScreen, which is a function that pushes an entirely new screen onto the navigation stack. There is no state change happening in HomeScreen. Transitioning to one screen from another is not a change in state - it is just transitioning to a new screen, which has its own state. Also, the body of the closure passed to setState doesn't do anything but generate a new List and ignores the result.

Remove the setState call from _displayCreateInformationScreen.

RhizomeManager: Complete and test

We're starting to see the rhizome parameter everywhere. Because
the Rhizome is essentially a singleton, we should be able to just define
a simple factory method to return the singular instance. That way there
is no longer a need to pass it down through a widget hierarchy, etc.

Stub a RhizomeManager that shall provide a static method for obtaining
the Rhizome anywhere it is needed.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.