Refine search
DSWeakReference(DataObject o, ReferenceQueue rqueue) { super(o, rqueue); this.hash = o.hashCode(); if (o instanceof DataShadow) { DataShadow s = (DataShadow)o; this.original = s.getOriginal ().getPrimaryFile (); } }
/** Creates the right data object for a given primary file. * It is guaranteed that the provided file will actually be the primary file * returned by {@link #findPrimaryFile}. * * @param primaryFile the primary file * @return the data object for this file * @exception DataObjectExistsException if the primary file already has a data object */ protected MultiDataObject createMultiObject(FileObject primaryFile) throws DataObjectExistsException, IOException { try { DataObject d = DataShadow.deserialize (primaryFile); if (d != null) return new DataShadow (primaryFile, d, this); } catch (IOException ex) { // broken link or damaged shadow file } /* Link is broken, create BrokenDataShadow */ return new BrokenDataShadow (primaryFile, this); } public void writeExternal(ObjectOutput oo) throws IOException {
private void refresh(boolean moved) { try { /* Link isn't broken */ if (moved) tryUpdate(); if (checkOriginal(original) != null) return; } catch (IOException e) { } try { /* Link is broken */ this.setValid(false); } catch (java.beans.PropertyVetoException e) { } }
private static synchronized void enqueueDataShadow(DataShadow ds) { checkQueue(); Map m = getDataShadowsSet (); FileObject prim = ds.getOriginal ().getPrimaryFile (); Reference ref = createReference(ds, getRqueue()); Set s = (Set)m.get (prim); if (s == null) { s = Collections.singleton (ref); getDataShadowsSet ().put (prim, s); } else { if (! (s instanceof HashSet)) { s = new HashSet (s); getDataShadowsSet ().put (prim, s); } s.add (ref); } }
if (f.hasExt(SHADOW_EXT)) { String path = (String) f.getAttribute("originalFile"); if (path != null && f.getSize() == 0) { f = FileUtil.getConfigFile(path); if (f == null) { DataObject d = DataObject.find(f); if (d instanceof DataShadow) { f = ((DataShadow) d).getOriginal().getPrimaryFile();
/** Creates arguments for given shadow node */ private Object[] createArguments () { String origDisp; String shadowName = obj.getName (); if (obj.original.isValid()) { origDisp = obj.original.getNodeDelegate().getDisplayName(); } else { // We will soon be a broken data shadow, in the meantime... origDisp = ""; // NOI18N } Boolean useOwnName = (Boolean)obj.getPrimaryFile ().getAttribute (ATTR_USEOWNNAME); if (obj.original.getPrimaryFile ().isRoot () && (useOwnName == null || !useOwnName.booleanValue ())) { try { shadowName = obj.original.getPrimaryFile ().getFileSystem ().getDisplayName (); } catch (FileStateInvalidException e) { // ignore } } return new Object[] { shadowName, // name of the shadow super.getDisplayName (), // name of original systemNameOrFileName (obj.getPrimaryFile ()), // full name of file for shadow systemNameOrFileName (obj.getOriginal ().getPrimaryFile ()), // full name of original file origDisp, // display name of original }; }
return fo.getNameExt(); } else { DataObject dao = (DataObject) activatedNodes[0].getLookup().lookup(DataObject.class); if (dao instanceof DataShadow) { dao = ((DataShadow) dao).getOriginal(); return dao.getPrimaryFile().getNameExt(); } else { return activatedNodes[0].getDisplayName();
private Image rootIcon(int type) { FileObject orig = obj.getOriginal().getPrimaryFile(); if (orig.isRoot()) { try { FileSystem fs = orig.getFileSystem(); try { Image i = Introspector.getBeanInfo(fs.getClass()).getIcon(type); return fs.getStatus().annotateIcon(i, type, obj.files()); } catch (IntrospectionException ie) { ErrorManager.getDefault().notify(ErrorManager.INFORMATIONAL, ie); // ignore } } catch (FileStateInvalidException fsie) { // ignore } } return null; }
DataObject obj = (DataObject)n[i].getCookie (DataObject.class); while (obj instanceof org.openide.loaders.DataShadow) obj = ((org.openide.loaders.DataShadow)obj).getOriginal(); if (obj != null) { try { FileSystem fs = obj.getPrimaryFile ().getFileSystem (); Set foSet = (Set) fsSet.get (fs); if (foSet == null ) { fsSet.put (fs, foSet = new FileSystemAction.OrderedSet ()); foSet.addAll(obj.files ()); } catch (FileStateInvalidException ex) {continue;} FileObject fo = (FileObject)it.next (); try { if (fo.getFileSystem () != fs) { it.remove ();
shadows = (Set)allDataShadows.get (src.getPrimaryFile ()); if (shadows == null) { DataShadow shadow = (DataShadow)r.get (); if (shadow != null) { shadow.refresh (shadow.getOriginal () == changed); List all = getAllDataShadows(); if (all == null) { return; obj.refresh (obj.getOriginal () == changed);
obj = shadow.getOriginal(); n = obj.getNodeDelegate(); obj = (DataObject)n.getCookie (DataObject.class); if (obj != null) { if (obj.isTemplate ()) {
private void originalChanged () { DataObject ori = obj.getOriginal(); if (ori.isValid()) { changeOriginal (ori.getNodeDelegate(), true); } else { updateShadowOriginal(obj); } }
/** Create a shadowing node. * @param shadow the shadow */ public ShadowNode (DataShadow shadow) { this (shadow, shadow.getOriginal ().getNodeDelegate ()); }
public Object getValue () { return obj.getOriginal ().getName(); }
public void setValue (Object val) throws IllegalAccessException, IllegalArgumentException, InvocationTargetException { if (!canWrite()) throw new IllegalAccessException(); if (!(val instanceof String)) throw new IllegalArgumentException(); try { DataObject orig = obj.getOriginal (); orig.rename ((String)val); writeOriginal (null, null, obj.getPrimaryFile (), orig); } catch (IOException ex) { throw new InvocationTargetException (ex); } }
/** Implementation of Container interface. * @return array of one element, the original */ public DataObject[] getChildren () { return new DataObject[] { getOriginal () }; }
/** Creates shadow for this object in specified folder (overridable in subclasses). * <p>The default * implementation creates a reference data shadow and pastes it into * the specified folder. * * @param f the folder to create a shortcut in * @return the shadow */ protected DataShadow handleCreateShadow (DataFolder f) throws IOException { // #33871 - prevent creation of recursive folder structure testNesting(this, f); String name; if (getPrimaryFile ().isRoot ()) { name = FileUtil.findFreeFileName ( f.getPrimaryFile (), ROOT_SHADOW_NAME, DataShadow.SHADOW_EXTENSION ); } else { name = null; } return DataShadow.create (f, name, this); }
public boolean canWrite () { return obj.getOriginal ().isRenameAllowed(); } }
public HelpCtx getHelpCtx () { return getOriginal ().getHelpCtx (); }
protected DataShadow handleCreateShadow (DataFolder f) throws IOException { if (getOriginal() instanceof DataFolder) { DataFolder.testNesting(((DataFolder)getOriginal()), f); } return original.handleCreateShadow (f); }