In the dc.js examples I have seen, the user applies a filter to a dimension by selecting values on a chart - and sometimes by selecting a legend item. How does one implement a dedicated control for selecting values?
So if you want a one off custom UI control, you can handle the events and call the relevant filters and redraw (the same way it's done when clicking on existing charts)
If you want to have something re-usable, you need to implement a new "graph" type, check the select menu code, it's not a lot of extra boilerplate
Btw, between combo box and select menu, you should be able to implement everything but the sider
Related
My program's GUI has a table with a textbox in each cell. When the user types something on a cell I want my program to get that something, plus the row and column the cell occupies on the table.
Creating an event for each cell manually is a lot of work, and each event would do the same thing, so I was wondering if there's an easier way to do this?
You can use one event handler function for several events, in your case the problem is to determine who has raised the event.
It is important to mention that tablelayout panels don't actually have cells, where you could think of container of objects. Some tricks have mentioned here for how to detect clicked row and column of changed textboxes(this link provided example of buttons but it is the same for texboxes too) but I highly recommend to use GridViews instead.
I've just come across the new Grid layout system in Umbraco, which seems quite interesting, however I can't seem to find a way to include a grid within a grid.
I've added a simple 2 column row onto a page in the example below, but now I want to add another 2 column row within it to fill in the 2 red squares. Is this not possible or am I missing something obvious?
If I click any of the layouts at the bottom it instead adds them as an extra row to the bottom of the page rather than inside an existing grid.
The only way to include a grid in a grid (that I'm aware of) is to use the Doc Type Grid Editor package: https://our.umbraco.org/projects/backoffice-extensions/doc-type-grid-editor
This package allows any Document Type to be the basis for a grid editor. I was able to create a grid editor that was a set of tabs where each tab had a grid data type for the content. The data type was specific to tabs so you couldn't create tabs in a tab.
I also created a package (v7 Dialog Expander) to allow the dialog flyout to expand: https://our.umbraco.org/projects/backoffice-extensions/v7-dialog-expander. I did this because a grid in the small width of the dialog flyout was just too small.
It is definitely possible and actually has worked out well so far. That said, I would tread lightly here because there could be issues that we haven't yet discovered as this solution is still on a development project.
I'm looking to build a clickable drill-down bar chart of sorts using dimple or nvd3.
I can create a bar chart no problem, but what I'd like to do is make each bar clickable to allow me to call a Javascript function which will load JSON to populate a separate chart (essentially doing a drill-down across multiple charts)
The problem however seems to be that I can only access the value or label in the series to the item I've selected, and in order to load the next chart I would need something distinct... another field from my recordset or even the index of the bar being clicked on.
Being new to dimple, I'm looking for a simple example but everything I'm seeing seems to involve drill-downs in the same chart or examples showing far more features than I need.
I'm just looking for a way to bind an event to each item in the series, and to use data during the click event that would be unique to that data point, but not used in the chart.
You can add events to a series using the series.addEventHandler method documented here.
This example is essentially a drill through but using the hover event instead of the click.
I am new to Windows Phone Programming. In my application, I Have a listbox which lists the phone contacts. Currently it is listed as a regular list with equal size for list items in the UI.I am looking to modify the front end like this :
I dont want to have different sizes /back ground color for each list items rather a fixed UI and let the lists scroll through it and the list item in the view, at any time, should be displayed as in the picture.
I dont expect any codes as answers but any examples are welcome too, just want to know using what feature this kind of functionality is possible so that i can do my reading!
Thanks,
Deepak
It would be difficult to modify an existing control (ListBox for example) to act like this, so your best bet would probably be an ItemsControl with its RenderTransform set as a TranslateTransform.
If you place a Rectangle (with Fill="Transparent") over the ItemsControl, you can attach handlers to the ManipulationStarted, ManipulationDelta, and ManipulationCompleted events to control the "scrolling" by setting the TranslateTransform's Y offset.
To resize the items in the list there are two options: a custom panel or manual setting.
Custom Panel
You could create a custom Panel implementation that will appropriately resize its Children based on a property you would create to represent the scroll position. Set the ItemsControl to use your panel, and either through binding or attaching a handler to the panel's Loaded event and keeping a pointer to the panel, update the aforementioned property from inside the ManipulationDelta handler.
Manual Setting
From inside of the ManipulationDelta handler, you can also calculate the various heights of the boxes and use MyItemsControl.ItemContainerGenerator.ContainerFromIndex to get the visual for each item and set its height.
I would suggest putting this all inside of a custom UserControl.
You may have issues with clipping using the TranslateTransform but hopefully this will get you started. Unfortunately, this looks like a rather difficult control to try making as your first windows phone project!
So Finally I did manage to find a way to do it.
First approach was as #Murkaeus suggested, Using UserControl and ManipulationDelta event handler. However for some reason the manipulationDelta event was triggered only for 2 finger gestures (Zoom, Pinch..etc), I have no clue why. And after some trying I had to give up on this.
The next approach was using Listbox itself. The source of the Listbox was set as the List( of Models objects) that I create after reading the contact information from phone. The height and color of the listbox item was bound to a property in my model named "scaleLevel" and was accordingly converted by implementing IValueConvertors to give predefined color and height values for different scale levels.
I created an attached property for the scrollviewer vertical offset like mentioned [here] (http://www.scottlogic.co.uk/blog/colin/2010/07/exposing-and-binding-to-a-silverlight-scrollviewer%E2%80%99s-scrollbars/)!
This event is triggered on change of the vertical offset and every time there is a scroll, I find out which listbox item to be enlarged and which reduced based current vertical offset.
Once I have this information, I change the property ("scaleLevel") of the affected items in the List (of Model) (which is bound to listbox height and color). This change is updated in UI using the INotifyPropertyChanged Event.
I have no idea if this the best way of doing it , but it works well and there is no considerable in updating the UI despite the processing involved.
I would like to hear your opinion about the implementation and any other solution which you feel will work better.
Just like the UITableView on iphone.
users can remove or move a row on UITableView.
There is only one button to switch the UITableView to editing mode.
but for listbox on wp7 , I need 3 buttons, one for removing the selected row, one for moving the row up, one for moving the row down.
Welcome any comment
The Windows Phone ListBox doesn't support these features out of the box, but it would be possible to add them yourself using a DataTemplate.
Here's a blog post about creating a custom DataTemplate for your ListItems.
At a high level, you'll need to create a template that contains:
Enter edit mode button
Delete button
Sort up/down buttons
Then in your code, you'll need to toggle the visibility of the delete and sort buttons, as well as handle user clicks on each of the buttons. Doable, but a fair amount of work.
In my opinion, a better option would be to use a approach that's different from what you might be used to but is more familiar to Windows Phone users: the ContextMenu. This control allows you to pop up a menu when the user performs a long touch (tap-and-hold) on an item.
Here's a good tutorial about incorporating this control into your app.
Take a look at re-order ListBox here. It shows how to retemplate the ListBox.
For removing on item, you just need to remove its data source item. See how to use ObservableCollection.
If you want to show effect when an item is removed, use Event Triggers for the Unloaded event.