1 20 package org.apache.directory.ldapstudio.aciitemeditor.valueeditors; 21 22 23 24 import org.apache.directory.ldapstudio.browser.common.dialogs.TextDialog; 25 import org.apache.directory.ldapstudio.browser.core.model.DN; 26 import org.apache.directory.ldapstudio.browser.core.model.IConnection; 27 import org.apache.directory.ldapstudio.browser.core.model.IValue; 28 import org.apache.directory.ldapstudio.valueeditors.AbstractDialogStringValueEditor; 29 import org.apache.directory.ldapstudio.valueeditors.ValueEditorManager; 30 import org.eclipse.swt.widgets.Shell; 31 32 33 39 public class SubtreeValueEditor extends AbstractDialogStringValueEditor 40 { 41 static final String EMPTY = ""; 43 private boolean refinementOrFilterVisible; 44 45 46 49 public SubtreeValueEditor() 50 { 51 this.refinementOrFilterVisible = true; 52 } 53 54 55 60 public SubtreeValueEditor( boolean refinementOrFilterVisible ) 61 { 62 this.refinementOrFilterVisible = refinementOrFilterVisible; 63 } 64 65 66 69 protected boolean openDialog( Shell shell ) 70 { 71 Object value = getValue(); 72 if ( value != null && value instanceof SubtreeSpecificationValueWrapper ) 73 { 74 SubtreeSpecificationValueWrapper wrapper = ( SubtreeSpecificationValueWrapper ) value; 75 76 SubtreeSpecificationDialog dialog = new SubtreeSpecificationDialog( shell, wrapper.connection, 77 wrapper.subentryDN, wrapper.subtreeSpecification, refinementOrFilterVisible ); 78 if ( dialog.open() == TextDialog.OK && dialog.getSubtreeSpecificationValue() != null ) 79 { 80 setValue( dialog.getSubtreeSpecificationValue() ); 81 return true; 82 } 83 } 84 return false; 85 } 86 87 88 91 public Object getRawValue( IValue value ) 92 { 93 Object o = super.getRawValue( value ); 94 if ( o != null && o instanceof String ) 95 { 96 IConnection connection = value.getAttribute().getEntry().getConnection(); 97 DN dn = value.getAttribute().getEntry().getDn(); 98 return new SubtreeSpecificationValueWrapper( connection, dn, value.getStringValue() ); 99 } 100 101 return null; 102 } 103 104 105 108 public Object getRawValue( IConnection connection, Object value ) 109 { 110 Object o = super.getRawValue( connection, value ); 111 if ( o != null && o instanceof String ) 112 { 113 return new SubtreeSpecificationValueWrapper( connection, null, ( String ) value ); 114 } 115 116 return null; 117 } 118 119 126 private class SubtreeSpecificationValueWrapper 127 { 128 129 private IConnection connection; 130 131 132 private DN subentryDN; 133 134 135 private String subtreeSpecification; 136 137 138 148 private SubtreeSpecificationValueWrapper( IConnection connection, DN subentryDN, String subtreeSpecification ) 149 { 150 this.connection = connection; 151 this.subentryDN = subentryDN; 152 this.subtreeSpecification = subtreeSpecification; 153 } 154 155 156 159 public String toString() 160 { 161 return subtreeSpecification == null ? "" : subtreeSpecification; } 163 164 } 165 } 166 | Popular Tags |