Monthly Archives: December 2010

Christine 12.30.2010

  • Met with Phil to see if building AirFileImageApp with Maven works on Windows. It doesn’t (will Windows and Mac every play nice). Will work further on task to get it working on Windows
  • Phil talked about IDE project and different pieces that will be needed to complete. Will work on Maven parser once other task is complete
  • Phil also showed me how the other projects work so I can get a better understanding of what currently exists, what’s in the works, etc.
  • Was given Eclipse Plug-ins book so I can read up on and get more familiar with how Eclipse plug-ins work

Phil 12.30.2010

7:30 – 4:00 VISIBILITY

  • Imported Anne’s spreadsheet. One column had paragraph-length descriptions, which wouldn’t fit in the DB. Not sure if this needs to be fixed or not…
  • Working with Christie to see if her mavanized air app will compile and run on my machine. Close – It compiles but the air app does not install properly. Also an issue with getting the assets directory and its contents into the project
  • Got my sandbox applet up and running. Much easier when you know what you’re doing. Next step is to upload and download binary data.

Mike 12.29.2010

Made a few architecture and functionality choices for the SWFManager:

  • Desktops: A Desktop is exactly as it sounds.  It contains everything one would normally associate with the desktop: a set of applications in windows, a taskbar of some type and anything else added later at this level.  An instance of SWFManager can have multiple Desktops but only one visible at a time and, for now, applications can not be shared between desktops though it would not be impossible to implement.  Communication between desktops will be possible.  In fact, some events may be fired that can span desktops while others are limited to only live within a single desktop.
  • Apps: An app is very similar to most applications on a windows machine.  They contain everything needed to run independently but, in this case, will be able to communicate between each other.  Every App is placed on a Desktop within an AppTitleWindow which is an extension of DynamicPanel.  An AppTitleWindow has buttons for minimize, maximize, and close and can be moved and resized around the desktop.  The interface for IApp as it stands now:
    • Get and Set configuration, this is a DataObject that contains all the information the application needs to restore its state
    • Get Icon, this returns an icon that will be used in the task bar and possible in menus elsewhere
    • Validate configuration, this returns a boolean indicating whether or not the provided configuration object is valid
    • Default configuration, takes a config object and defaults all its properties
  • Widgets: A Widget is a basic user interface component such as a Chart, Datagrid, RichTextArea, or map with navigation controls.  Widgets live within SOME Apps.  A developer may make a very elaborate App with charts, datagrids, text, maps, and all sorts of things without needing to worry about defining them as Widgets or using our IWidget interface.  However, for some of our internal Apps, it makes sense to make reusable Widgets with certain capabilites.  All Widgets will be added to an App inside of an EditableWidgetContainer which contains controls for accessing Widget options.  The current inteface:
    • Get and Set configuration, this is a DataObject that contains all the information the widget needs to restore its state
    • Validate configuration, this returns a boolean indicating whether or not the provided configuration object is valid
    • Default configuration, takes a config object and defaults all its properties
    • Get Configuration Menu, returns a UIComponent containing whatever inputs are necessary to configure the widget, this is how users will configure their widgets at run-time
  • A few notes on Apps and Widgets:
    • Their interfaces are very similar and it would be possible for a component to implement BOTH IApp and IWidget so an App can be contained within an App.  The interfaces are purposely being kept separate so the developer can make that choice.  For example, it makes sense that an RSSReader may exists as both a Widget within a report or as a standalone App.  However, it wouldn’t make sense for Visiblity to be contained within another App.
    • Their positioning and sizing information will not be held within their own configurations.  It will instead be held either in the parent container’s config or the parent container’s layout config.
  • IApp, AppTitleWindow, and several applications are already written at this point so I’m now working on EditableWidgetContainer and a few sample widgets: AdvancedDataGrid, RichTextArea, and maybe a chart or 2

Phil 12.29.2010

7:30 – 4:30 VISIBILITY

  • Meeting with Anne this morning. We were able to pull data (via excel) from the main database into visibility. Not too many steps either. She’s going to work on putting together a good example table or tables that will let us make a particularly nice set of visualizations
  • Dong and I have a meeting with Adam and Christie at 11:00 – 1:00
    • Summary section year one is summing properly but subsequent years are not.
    • Budgets can be for only one year
    • Explicit save for financial data entry. There may need to be some rolling backup (saving to the client?) that the user may restore from if there is a problem.
    • Show the date of the last comment in the add/view comments area
    • Add commas to the invoice number entry fields
    • make login test not case sensitive
    • need to be able to enter negative amounts for the invoices
    • project name disappears from modify project screen occasionally when returning from some other task
    • Bigger invoice list view to include comments
    • Automatically add a comment if a past value has been changed. Something to the effect 12.28.2020 – Phil Feldman changed November 2010 program actuals for line item xyz from $123 to $345
    • Admin capability to add/modify/delete/merge tables produced using “add new”. Default behavior could be to present a list of projects that use the tag, and have the admin fix each manually. There could also be a global replace button.
    • Add a Financial Status page that only lets HQ see and change project info. This panel mostly shows data from the Funding Requests, but also allows the user to change the funding request by editing fields in the table. To do this several fields need to be added to the Funding Request widget:
      • Reference number in FACTS in reimbursable section (possible uniqueness test?)
      • if certified date != null, put funding amount in initiate/comment
      • Add outlay entry to reimbursable and Direct Cite
      • Add contractor name and location to Direct Cite table
      • Column that subtracts outlays from obligations
      • Roles will need year ranges
      • Program Elements and FACTS PE add to budget line item
      • Remaining to distribute – Total budget minus distributions
      • A scan of Trish’s spreadsheet is here


Dong Shin 12.29.10

  • PPM
    • copied PPM stuff for deployment at /exchange/PPM_122910
  • MavenAssist
    • modified CreateProject and UserSettings to use archetypeRepository
    • -DarchetypeRepository=
    • current version is
  • meeting with Trish and folks
    • lots of notes to come….
  • PPM Bugs
    • Summary not updating for year 2, 3, so on in Financial Data
    • Ability to create project with 1 year span
    • Save Confirmation pops up on Financial Data – not working properly
    • Add comments status indicator, possibly number of comments and/or last updated date
    • Add commas to invoice dollar amont
    • Update login not possible because it’s used as database key. Let users change it and use no case-sensitive joins for existing data?
    • Allow negative values for invoice amounts
    • Project Name in Create Project disappearing?
    • larger View Invoices Panel in Financial Data so that comments are visible
    • logs/alerts for changing previous months data
      • from <> to <> by user id?
    • add delete/modify capabilities to all tables that use single drop down list to add a string to projects, funding requests, etc.
  • PPM Enhancements to support Financial Statu Sheet
    • one to one relationship with project
    • most of the data comes from Project and Funding Requests
    • if Certified Data != null, Initiate/Commit needs to be filled
    • new fields in Project – added to the Budget Datagrid
      • Program Element
      • FACTS BE
    • new fields in Funding Request
      • Reference Number in Reimbursable Amount – uniqueness test/
      • Contractor Name and Location in Reimbursable Amount/Direct Cites
      • Outlay in Reimbursable and Direct Cites
    • PM Actual Outlay = obligation – outlay
    • Roles to support users to fall into FYs and Projects
    • Remaining to Distribute = total budget – distributions

Christine 12.28.2010

  • Continued working on Mavenizing AirFileImageApp
    • Received 3 errors:
      • Content error in AirFileImageApp-app.xml. Changed generic “this text will be overwritten…” to ${output} and error fixed.
      • Received Error 303 : assets/BlackEye16.png (32, 48 & 128 too) Icon Missing from package. After looking into several possibilities (none of which applied to this issue), commented out the icons for now and it worked. This also ended up eliminating the 3rd error which said “failed to execute flexmojos-maven-plugin3.8:sign-air”
    • Ran several clean installs and they all build the application successfully.
    • Will write up exactly what was done to get application to execute via maven
  • Downloaded lastest MavenAssist patch. Still have the same issue where app is not reading archetypeRepository from settings and using 4.0. The app just does not want to play nice.

Mike 12.28.2010

  • Thought about architecture overnight and decided what I’m using now is good and all it is missing is defining how applications will interact with each other.  This will mainly depend on how our users will want to define actions.  Will they define very specific actions or should it be more automatic like the old global selected item stuff?
  • Worked on the reportwidget.  Started by loading in xml at runtime which creates an app and adds it to the screen.  Now I’m going to define a ReportWidget App in xml and load it at runtime and see if I can get some text / datagrids to appear.

Phil 12.28.2010

7:30 – 5:30 VISIBILITY

  • Meeting with Katie C. went well. I showed her the entire VISIBILITY suite, and she walked though what her group needs. She’s going to get together with her division chief and schedule a demo
  • Trish found a bug(?) with user data, where a phine number with an extension can’t be stored in the DB. Let Dong know about it.
  • Working my way through protocol buffers.
    • I have to say, this is getting complex. So far you need cygwin and the gcc compiler to *build* the protoc.exe compiler. Right now I’m running the config utility that is determining *how* it will make the executable….
    • And now I need make. Getting that. Done (Cygwin is pretty cool sometimes). Running.
    • Failed CommandLineInterfaceTest.WindowsOutputPath test. Seems to be that the checks don’t understand cygwin’s way of referencing the c drive (cd cygdrive/c as opposed to cd C:/). Reading the blogs, this appears to be tolerable. The install seems to work.
  • And before I go and try this, I’m going to look for some simpler binary transfer mechanism. This is OK if you’re Google, but I’d like something that doesn’t add complexity to an already complex concept.
  • Started building a war file for a test servlet project and ran into Christine’s problem. It turns out that when we’re adjusting the pom file after it’s creation but before eclipse:eclipse is run on it, the number for the flex-mojo plugin is coming from the flexVersion variable instead of the flexArchetype variable from the User Settings. Fixed that, and uploaded the new code into subversion.

Dong Shin 12.28.2010

  • working at home….
  • continue working on MySQLDataManager and MySQLDataObject
    • retrieves data in XML and add dynamic properties to each row (Object) of the data
    • dynamic object in DefaultDataObject may not be very usable…. need to change it to the properties of the Class itself
  • PPM Changes for adding phone extensions
    • DB changes
      • ALTER TABLE `users` ADD `unclass_phone_ext` VARCHAR( 4 ) NULL AFTER `unclass_phone`
      • ALTER TABLE `users` ADD `class_phone_ext` VARCHAR( 4 ) NULL AFTER `class_phone`
      • ALTER TABLE `funding_requests` CHANGE `financial_poc_phone` `financial_poc_phone` VARCHAR( 35 ) CHARACTER SET utf8 COLLATE utf8_unicode_ci NULL DEFAULT NULL
      • ALTER TABLE `funding_requests` CHANGE `technical_poc_phone` `technical_poc_phone` VARCHAR( 35 ) CHARACTER SET utf8 COLLATE utf8_unicode_ci NULL DEFAULT NULL
      • ALTER TABLE `funding_requests` CHANGE `nsa_poc_phone` `nsa_poc_phone` VARCHAR( 35 ) CHARACTER SET utf8 COLLATE utf8_unicode_ci NULL DEFAULT NULL
    • Added extensions to AddUserForm
    • Add/Modify works
    • Added extensions to all contacts in Funding Request
    • Added extensions to SelectProjectWindow, ProjectMgmtPanel, ProjectViewerPanel sot that the extensions shown on Financial Data

Christine 12.27.2010

  • Worked with Dong on MavenAssist issue. Problem is that flexmojos-maven-plugin 4.0 was being used by maven, rather than 3.8 (which is specified in settings). It appears MavenAssist isn’t reading my archetypeRepository settings. Immediate fix: added in archetypeRespository setting into MavenAssist archetype command so that flexmojos-maven-plugin 3.8 is found and used, rather than latest one.
  • Reading through AirFileImageApp code
  • Reading up on how to run a Flex Air application via Maven. Made first attempt and all went well until reached digital signature of application. Reading up on manually creating the certificate for flexmojos-maven-plugin:sign-air to work. Created cert, but sign-air still failed to execute