import org.eclipse.core.resources.IFile;
import org.eclipse.core.resources.IProject;
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.core.runtime.Status;
import org.eclipse.swt.SWT;
import org.eclipse.swt.custom.CCombo;
import org.eclipse.swt.custom.TreeEditor;
import org.eclipse.swt.widgets.TreeItem;
import org.eclipse.ui.PlatformUI;
import org.eclipse.ui.dialogs.ElementTreeSelectionDialog;
+import org.eclipse.ui.dialogs.ISelectionStatusValidator;
import org.eclipse.ui.model.WorkbenchContentProvider;
import org.eclipse.ui.model.WorkbenchLabelProvider;
import org.tizen.web.config.schema.model.Privilege;
OBJECT, ARRAY, PRIMITIVE
}
- private static final String xmlConvertAttrPrifix = "@";
- private static final String xmlConvertTextPrifix = "#";
- private static final String xmlConvertTextName = "text";
+ private static final String xmlAttrPrefix = "";
+ private static final String xmlTextPrefix = "";
+ private static final String xmlTextName = "text";
+ private static String nullFixAttrPrefix = null;
private static Gson gson;
private static DocumentBuilderFactory dbf;
static {
+ if( xmlAttrPrefix.trim().length() == 0)
+ nullFixAttrPrefix = "__@@__";
+ else
+ nullFixAttrPrefix = xmlAttrPrefix;
+
gson = new GsonBuilder().setPrettyPrinting().serializeNulls().create();
dbf = DocumentBuilderFactory.newInstance();
for ( int j = 0; j < node.getAttributes().getLength(); j++ ) {
Node attNode = node.getAttributes().item( j );
- jsonOb.addProperty( xmlConvertAttrPrifix + attNode.getNodeName(),
+ jsonOb.addProperty( xmlAttrPrefix + attNode.getNodeName(),
attNode.getNodeValue() );
isExistChild = true;
}
String textNodeName = "";
if ( isExistChild )
- textNodeName = xmlConvertTextPrifix + xmlConvertTextName;
+ textNodeName = xmlTextPrefix + xmlTextName;
if ( node.getFirstChild() != null && node.getFirstChild().getNodeType() == Node.TEXT_NODE
&& node.getFirstChild().getTextContent().trim().length() != 0 ) {
public static Combo addComboInTreeItem( TreeItem item, String data, final SourceDialogSubPage currentSubPage ) {
TreeEditor treeEditor = new TreeEditor( item.getParent() );
- treeEditor.horizontalAlignment = SWT.CENTER;
- treeEditor.verticalAlignment = SWT.CENTER;
treeEditor.grabHorizontal = true;
treeEditor.grabVertical = true;
-// treeEditor.minimumHeight = item.getParent().getItemHeight()-1;
-// treeEditor.minimumWidth = item.getParent().getColumn( 2 ).getWidth() -1;
- Combo combo = new Combo( item.getParent(), SWT.SINGLE | SWT.BORDER | SWT.READ_ONLY );
+ Combo combo = new Combo( item.getParent(), SWT.SINGLE | SWT.READ_ONLY );
treeEditor.setEditor( combo, item, 2 );
final String[] comboItems = { "String", "Number", "Boolean", "Object", "Array" };
+
combo.setVisibleItemCount( comboItems.length );
combo.setItems( comboItems );
combo.select( Arrays.asList( comboItems ).indexOf( data ) );
combo.addSelectionListener( new SelectionAdapter() {
@Override
public void widgetSelected( SelectionEvent e ) {
- CCombo combo = (CCombo) e.getSource();
+ Combo combo = (Combo) e.getSource();
TreeItem parentItem = (TreeItem) combo.getData( "parentItem" );
String selectedText = comboItems[combo.getSelectionIndex()];
}
} else if ( jsonElement.isJsonObject() ) {
JsonObject jb = jsonElement.getAsJsonObject();
+
+ JsonElement textElement = jb.get( xmlTextPrefix + xmlTextName );
+ if( textElement != null )
+ element.setTextContent( textElement.getAsString() );
+
Set<Entry<String, JsonElement>> entrys = jb.entrySet();
for ( Entry<String, JsonElement> entry : entrys ) {
String key = entry.getKey();
Element newChild = null;
-
- if ( !key.startsWith( xmlConvertAttrPrifix ) && !key.equals( xmlConvertTextPrifix + xmlConvertTextName ) ){
+
+ if ( !key.startsWith( nullFixAttrPrefix ) && !key.equals( xmlTextPrefix + xmlTextName ) ){
newChild = doc.createElement( key );
if ( element == null )
if ( entry.getValue().isJsonPrimitive() ) {
String value = entry.getValue().getAsJsonPrimitive().getAsString();
- if ( xmlConvertAttrPrifix.length() != 0 && key.startsWith( xmlConvertAttrPrifix ) ) {
+ if ( key.startsWith( nullFixAttrPrefix ) ) {
element.setAttribute( key.substring( 1, key.length() ), value );
- } else if ( key.equals( xmlConvertTextPrifix + xmlConvertTextName ) ) {
- element.setTextContent( value );
+ } else if ( key.equals( xmlTextPrefix + xmlTextName ) ) {
+ continue;
} else {
newChild.setTextContent( value );
}
new ElementTreeSelectionDialog( Display.getCurrent().getActiveShell(),
new WorkbenchLabelProvider(),
new WorkbenchContentProvider() );
+
+ dialog.setValidator(new ISelectionStatusValidator() {
+ @Override
+ public IStatus validate(final Object[] selection) {
+ if (selection.length > 0) {
+ final Object item = selection[0];
+ if ( !(item instanceof IFile) ) {
+ return new Status(IStatus.ERROR, "unknownId","");
+ }
+ }
+ return new Status( IStatus.OK, "unknownId", "");
+ }
+ });
+
dialog.setTitle( "Select File" );
-
+ dialog.setDoubleClickSelects( true );
+
IProject project = null;
IFile file =
import org.eclipse.swt.widgets.Control;
import org.eclipse.swt.widgets.Dialog;
import org.eclipse.swt.widgets.Display;
+import org.eclipse.swt.widgets.Event;
import org.eclipse.swt.widgets.Group;
+import org.eclipse.swt.widgets.Listener;
import org.eclipse.swt.widgets.Shell;
import org.eclipse.swt.widgets.Text;
import org.eclipse.swt.widgets.Tree;
expandAll.setLayoutData(data);
dialogTree = new Tree(treeComposite, SWT.BORDER | SWT.H_SCROLL | SWT.V_SCROLL | SWT.FULL_SELECTION );
+
+ dialogTree.addListener( SWT.MeasureItem, new Listener() {
+ @Override
+ public void handleEvent( Event event ) {
+ event.height=19;
+ }
+ } );
+
dialogTree.setLinesVisible(true);
dialogTree.setHeaderVisible(true);
key = String.valueOf(parentItem.getItemCount()-1);
}
+ if( !type.equals("Index") )
+ Helper.addComboInTreeItem(item, type, currentSubPage);
+
item.setText(new String[] { key, value, type });
TreeItemData treeItemData = new TreeItemData();
item.setData("TREEITEMDATA", treeItemData);
- if( !type.equals("Index") )
- Helper.addComboInTreeItem(item, type, currentSubPage);
-
dialogTree.showItem(item);
if( currentSubPage instanceof StaticSubPage ){