View this PageEdit this PageAttachments to this PageHistory of this PageHomeRecent ChangesSearch the SwikiHelp Guide
Hotspots: Admin Pages | Turn-in Site |
Current Links: Cases Final Project Summer 2007

Questions on UI Design Milestone

See Spring 2000 Project Milestones – ask questions here:

Brandon Berg

A default newspaper, with some categories and sources selected, makes good sense. The primary category must be visited, as many news sources as desired, and then do others as you wish.

Also, you do have leeway in how you meet the UI. It must be possible (and evident how!) to select categories and sources and to produce a newspaper. If you don't want to have two big buttons, you don't have to. Mark Guzdial

I'm having trouble deciding whether a category should know which news sources belong to it, or wheather each source should know what its category is. Should category be a class, or an attribute? Should I choose one over the other because it would be easier to implement or more efficient? Also, it's not clear to me exaclty how much ooa of the model is necessary before doing the ooa of the interface. I'm not looking for givaways, but could I please get some pointers?
John Smith

You're thinking about exactly the right issues! To me, categories have news sources, but if a news source ever needs to send a message up to its category (at the moment, can't think of a reason), then you need the upward pointer, too. Categories could very well be classes. You're definitely not worried about efficiency here – you're looking for clarity, elegance, a good design. I wouldn't sweat OOA-ing the whole thing yet. Part of my reason for giving you this assignment now is to get you to think in just this way: What will the whole thing look like if this is how the user sees it? Mark Guzdial

When trying to do the brainstorming for the UI our group ran into some problems. Trying to follow the guidlines for the analysis and stick to real world was impossible because what we were designing doesn't exist in the real world. What exactly are we supposed to include in our analysis. Just the UI stuff we are planning on doing or some of the underlying structures that they need to know about? Ansley Post

Good questions! Exactly what you should be thinking about! My suggestion is NOT to go into the underlying structures now, but you'll need them in just over a week for your group plan and design, so it's a great thing to be thinking about! Yes, some of what you're doing doesn't exist in the real world, so you have to be more careful in defining real objects. But there are newspapers and sources and... Mark Guzdial

Can we add to the list of categories?
My group feels that this project can be done in several ways.
1. The user selects a bunch of categories and is then shown his choices for matching newsources.
2. The user selects some news sources and is then presented with a list of categories available from those news sources.
3. The user selects categories and news sources and the program decides what news should appear (possibly by ANDing the two lists).
Do we have to do this in a particular way? Anup Rao

No, this is a design project – you can do it as you want as long as you provide the needed functionality. There is only ONE primary. Mark Guzdial

  1. In the Spring 2000 Project Assignment Description, the instructions make it clear that "The user must also be allowed to choose the primary news category for them:...". In the Spring 2000 Project Milestones, the instructions say "Choosing News Sources should allow us to ... and identify our primary news categories." Should a user be limited to selecting a maximum of one primary category, or multiple primary categories?
  2. Also, in the described list of categories that are candidates to be a primary news category, no mention is made of anything like Space, Health, Education,... being candidates for a primary news category. Is this correct? (Suppose someone wanted Education as their primary news category???)
  3. Finally, if a user chooses "Sports" as their primary news category, should ALL available sources of sports news be automatically selected? I didn't think so until I saw in the Spring 2000 Project Assignment Description "(e.g., if Sports is selected as the primary news category, CNN Sports and ESPN Sports are the primary news sources [that are generated and have their headlines on our front page]). This latter instruction appears to contradict my original understanding and Mark's answer to the very first question on this page.
Matthew Wolenetz
Sorry – I fixed my first answer and I fixed the text in Spring 2000 Project Milestones. Select a primary category (just one for now) and sources. You can add categories if you want, but the ones I mention must be there. If Sports are the primary, visit all of those sources that are selected (if they don't select CNN, then only visit ESPN). Mark Guzdial

Now, The Spring 2000 Project Milestones makes no reference to anything "primary" at all (categories or otherwise..) Yet, your answer above requires us to ask the user for a primary category selection. I'm confused
Matthew Wolenetz

Look back at the original project description. Users pick sources they trust. They identify the primary category – that's the one that defines the most important articles, the ones that appear on the front page, that form the major headlines. Let's talk about this in class. Mark Guzdial

Does the Squeak library provide some sort of check-box class? I am referring to those things which allow you to include/remove an item by clicking in that item's associated box.
Nick Michalko
Nick, I didn't know, but I do now, and you could have done the same thing as me! Go to the browser, do a find class on "button." Look at the things that come up! There is a radio button, but no checkbox, but there is a ThreePhaseButtonMorph which looks like it could work. The system is designed to be explored... Mark Guzdial

I tried downloading the clock-pluggable.cs file to mess around with, but when I try to file in, it gives me a message not understood: methodsFor: Stamp error. Is there someway you could doublecheck the file, or am I doing something wrong?
David Jaggie
Did you file in clock-ui1, clock-ui2, clock-ui3? Clock-pluggable builds on those others. Clock-pluggable doesn't include the ClockWindow class, which is probably causing the error. Mark Guzdial

I am trying to use a pluggableListMorph to view the sources in each category. The category itself is a button once pressed I want it to view the new sources in the ListMorph, does anyone know how I can update or redraw the ListMorph to show current information everytime a category button is selected?
We did this in the first section of 2330 yesterday. Have your model announce changed: on the get text selector of the ListMorph, and the ListMorph will update. Look at the Browser code for examples. Mark Guzdial

We were thinking about how to make this system a bit more reusable.
For instance, suppose someone adds more categories and/or sources. With all of this "initialization of structure" code being statically coded into our project, it's not very maintainable. Can we instead use some kind of configuration file that contains category/source mappings?
Squeak Times

Yes, if you can get that file to your TA along with your code. Mark Guzdial

We are having problems getting a menu to work. We can get it to pop up with all the options, but when we click on our choice, nothing happens. As we understand it, whatever method we put in the selections: section should be called when that menu choice is selected. We have that method in the same class, but it never does anything at all. This is what one of our menu methods looks like:

labels: 'Local\Weather\Traffic' withCRs
lines: #(1 2)
selections: #(accessAtlantaLocal accessAtlantaWeather accessAtlantaTraffic))

startUpWithCaption: 'Please choose your news category:'.

Thanks for any help you can give.

No, that's not correct. The menu will RETURN the desired symbol. If you want, you can simply put self perform: before the menu creation and startUp, then you'll get the behavior you want. But menus JUST return the symbol, not do anything with it. Mark Guzdial

Please let me know if this is a valid interpretation of the specs: A user can select a primary category from the four mentioned in the specs. For this category, the user can select any/all sites that carry this category to be used as sources. The user can then select any other categories they want from all the ones listed, from which they will select one source for. Is this anywhere close, or am I misinterpreting the specs?
David Jaggie

No, that's a misinterpretation. Users pick sources, which means that they have selected whatever news are posted there. The whole idea of categories is to PRIORITIZE the news. What kind goes on the front page? That's the Primary category. You can have secondaries, if you want, which decides what comes AFTER the primaries. Mark Guzdial

I'm trying to get the PopUpChoiceMorph to work. I have it filled with the needed items, but whenever I choose an item, it gives me some error about incorrect arguments. I looked at the Color sample it gave, but everything I tried didn't work. What am I missing here...?

Stephen Belknap

Can't tell from what you're telling me. Perhaps some code? Mark Guzdial

How do you rotate a morph at run-time?

Brandon Berg

You have to wrap it in a Transform or Flex morph then rotate it, but why do you want to do that? Hint: Check out how the rotation halo works, which is implemented in HandMorph. Mark Guzdial

Having a very small cosmetic problem. When I attempt to put any of the various text morphs into my window I will always have a border around them even if I set the width of the border to 0. Any suggestions? comments?

Adam Gershowitz

Find an example in the code that does the non-border you want, then copy it. That's what's useful about 6+ M of source. Mark Guzdial

If we have images in our interface do you want us to just send them to the TA with our code?

Kapil Chandra
Either that or stick them on the Web someplace and load them in with HTTPSocket>httpGif: Mark Guzdial

I am having a bit of difficulty getting the remove: oldObject ifAbsent: aBlock method to work in class set. My main difficulty is I'm not sure what I need to pass in for the value of aBlock. I've tried passing in a junk variable, or nil but it dosn't like that. I've hunted for example source as well but no luck there. Any suggestions?

Adam Gershowitz
Try passing in an empty block, e.g., []. Mark Guzdial

Do we have to have the newspaper save the user's sources on exit or can we just have a save button that the user must press for the sources to be saved?
Kapil Chandra
Either way. Mark Guzdial

When I use the fileNamed: and oldFileNamed: constructors of the FileStream class for saving to disk, some ascii barf is usually appended to the end of my newssources.txt file rendering it unusable. This does not occur if I use the newFileNamed: method but that produces a confirmation popup prior to saving. Is this alright or is there a preferred method of doing this?
Nick Michalko

Could the "ASCII barf" (is that a technical term? :-) be the remains of the file? On some platforms, overwriting a file with text that was shorter than what was there previously doesn't get rid of the old stuff. The fix is to delete the file first. Mark Guzdial

I was double-checking the turnin requirements and it states for the UML class diagram that is should be a "diagram of UI classes with a description of each class and what it's methods do". Should we have a paragraph description of each class and its methods? This seems redundant as we are also turning in a hardcopy of our code with comments that do that. Any assistance would be appreciated. Victoria Smith

The idea is that when you were designing, you wrote down some notes on what the methods should do, and that's what you're handing in. Your comments should describe what you actually did. At least, that's the design process I'm asking you to use. Mark Guzdial

Links to this Page