= !MapGuide RFC 81 - Add a new widget Feature Inspector = This page contains an change request (RFC) for the !MapGuide Open Source project. More !MapGuide RFCs can be found on the [wiki:MapGuideRfcs RFCs] page. == Status == ||RFC Template Version||(1.0)|| ||Submission Date||(Date/Time submitted)|| ||Last Modified||Buddy Hu [[Timestamp]]|| ||Author||Buddy Hu|| ||RFC Status||retracted|| ||Implementation Status|||| ||Proposed Milestone||2.2|| ||Assigned PSC guide(s)||Tom Fukushima|| ||'''Voting History'''||(vote date)|| ||+1|||| ||+0|||| ||-0|||| ||-1|||| ||no vote|| || == Overview == We get some requirement from the costomers: - No way to VISUALLY distinguish two or more features that are either overlapping or too close to each on the map; - Users must use their attributes as a way to distinguish them; - once I've distinguish a feature, I should be able to easily select that feature; We will introduce a new widget "Feature Inspector panel" for both Fusion viewer and Ajax viewer. With this new panel, the user can distinguish the feature(s) which he/she wants. == Motivation == The current way to select features in MapGuide applications makes the process of distinguishing one specific feature out of a selection group difficult: 1. No means to visualize the attributes of multiple features at once; 2. No means to “browse through” a selection set; There are some use cases: 1.If several features are selected across different layers, the selection panel should allow users to easily visualize their attributes and which layers these selected features belong by; 2.At a given zoom level in a map, some features might be too close to each other for users to select them individually; users should be able to interact with the elements in the "Feature Inspector" panel to help them narrow down a selection group to which feature he/she wants without changing the scale range; == Proposed Solution == This is the UI of this new widget: [[Image(Feature_Inspector_Panel.2.JPG)]] When the user selection some features in the map, and click the "Move to Inspector", the tree of the "Feature Inspector panel" will be refreshed. In this tree, a leaf node indicates a feature, and its parent node(non-leaf node) indicates the layer which the feature belongs to. The leaf node displays all the attributes of the feature related to this node. By default, all nodes are checked. If the user uncheck any node, the feature(s) related to this node would be unhighlighted, and also the feature(s) would be removed from the selection set. If the user check it again, the the related feature(s) will be selected/highlighted again. If the user click a leaf node, all the other nodes will be unchecked, only one feature which related to this node is selected and highlighted. So the user can isolate the feature what he/she wants. We will use the JxLib to draw the Panel. For Fusion viewer, we don't have too many difficulties, because we are using the JxLib currently. However, for AJAX viewer, we need to introduce the JxLib. And the JxLib is about 250KB compressed, it would double the download size of basic viewer which currently is about 200KB. Our solution is, we will use the download builder to get a smaller file of JxLib. In this file we only include the components which we want, e.g. Jx.Tree. And also, we can use gzip to compress the JxLib file and its css file. So we can get the JxLib file down to 24KB with gzip compression. Then it won't affect the download size of basic viewer obviously. == Implications == This change will increase the download size of basic viewer about 1/10th. No changes to the Server code. == Test Plan == N/A == Funding/Resources == Supplied by Autodesk