This Bugzilla instance is a read-only archive of historic NetBeans bug reports. To report a bug in NetBeans please follow the project's instructions for reporting issues.

View | Details | Raw Unified | Return to bug 221831
Collapse All | Expand All

(-)versioning.core/nbproject/project.properties (-1 / +1 lines)
Lines 44-50 Link Here
44
javac.source=1.6
44
javac.source=1.6
45
45
46
javadoc.name=Versioning
46
javadoc.name=Versioning
47
spec.version.base=1.9.0
47
spec.version.base=1.10.0
48
is.autoload=true
48
is.autoload=true
49
49
50
javadoc.arch=${basedir}/arch.xml
50
javadoc.arch=${basedir}/arch.xml
(-)versioning.core/src/org/netbeans/modules/versioning/core/spi/VCSVisibilityQuery.java (+10 lines)
Lines 69-72 Link Here
69
    protected final void fireVisibilityChanged() {
69
    protected final void fireVisibilityChanged() {
70
        VcsVisibilityQueryImplementation.visibilityChanged();
70
        VcsVisibilityQueryImplementation.visibilityChanged();
71
    }
71
    }
72
    
73
    /**
74
     * Notify a visibility change
75
     * 
76
     * @param VCSFileProxy[] the files with a changed visibility
77
     * @since 1.10
78
     */
79
    protected final void fireVisibilityChanged(VCSFileProxy... file) {
80
        VcsVisibilityQueryImplementation.visibilityChanged(file);
81
    }
72
}
82
}
(-)versioning.core/src/org/netbeans/modules/versioning/core/util/Utils.java (+14 lines)
Lines 47-52 Link Here
47
import javax.swing.Action;
47
import javax.swing.Action;
48
import org.netbeans.modules.versioning.core.*;
48
import org.netbeans.modules.versioning.core.*;
49
import org.netbeans.modules.versioning.core.api.VCSFileProxy;
49
import org.netbeans.modules.versioning.core.api.VCSFileProxy;
50
import org.netbeans.modules.versioning.core.filesystems.VCSFileProxyOperations;
50
import org.netbeans.modules.versioning.core.spi.VCSHistoryProvider;
51
import org.netbeans.modules.versioning.core.spi.VCSHistoryProvider;
51
import org.netbeans.modules.versioning.core.spi.VCSHistoryProvider.HistoryEntry;
52
import org.netbeans.modules.versioning.core.spi.VCSHistoryProvider.HistoryEntry;
52
import org.netbeans.modules.versioning.core.spi.VCSHistoryProvider.MessageEditProvider;
53
import org.netbeans.modules.versioning.core.spi.VCSHistoryProvider.MessageEditProvider;
Lines 139-144 Link Here
139
    }
140
    }
140
    
141
    
141
    /**
142
    /**
143
     * Notifies about visibility changes according to {@link VisibilityQueryImplementation}
144
     * 
145
     * @param File[] the files with a changed visibility
146
     */
147
    public static void fireVisibilityChanged(File... files) {
148
        VCSFileProxy[] proxies = new VCSFileProxy[files.length];
149
        for (int i = 0; i < files.length; i++) {
150
            proxies[i] = VCSFileProxy.createFileProxy(files[i]);
151
        }
152
        VcsVisibilityQueryImplementation.visibilityChanged(proxies);
153
    }
154
    
155
    /**
142
     * Notifies that a versioning system started to manage some previously unversioned files 
156
     * Notifies that a versioning system started to manage some previously unversioned files 
143
     * (e.g. those files were imported into repository).
157
     * (e.g. those files were imported into repository).
144
     */
158
     */
(-)versioning.core/test/unit/src/org/netbeans/modules/versioning/core/spi/VCSVisibilityQueryTest.java (+42 lines)
Lines 50-60 Link Here
50
import org.openide.filesystems.FileObject;
50
import org.openide.filesystems.FileObject;
51
51
52
import java.io.File;
52
import java.io.File;
53
import java.util.ArrayList;
54
import java.util.List;
53
import javax.swing.event.ChangeListener;
55
import javax.swing.event.ChangeListener;
56
import junit.framework.Assert;
54
import org.netbeans.api.queries.VisibilityQuery;
57
import org.netbeans.api.queries.VisibilityQuery;
55
import org.netbeans.junit.NbTestCase;
58
import org.netbeans.junit.NbTestCase;
59
import org.netbeans.modules.versioning.core.api.VCSFileProxy;
56
import org.netbeans.modules.versioning.core.spi.testvcs.TestVCS;
60
import org.netbeans.modules.versioning.core.spi.testvcs.TestVCS;
57
import org.netbeans.modules.versioning.core.spi.testvcs.TestVCSVisibilityQuery;
61
import org.netbeans.modules.versioning.core.spi.testvcs.TestVCSVisibilityQuery;
62
import org.netbeans.spi.queries.VisibilityQueryChangeEvent;
58
import org.openide.util.test.MockLookup;
63
import org.openide.util.test.MockLookup;
59
64
60
/**
65
/**
Lines 100-105 Link Here
100
        VisibilityQuery.getDefault().removeChangeListener(cl);
105
        VisibilityQuery.getDefault().removeChangeListener(cl);
101
    }
106
    }
102
107
108
    public void testFireForAll() {
109
        final boolean [] received = new boolean[] {false};
110
        VisibilityQuery.getDefault().addChangeListener(new ChangeListener() {
111
            @Override
112
            public void stateChanged(ChangeEvent ce) {
113
                received[0] = true;
114
            }
115
        });
116
        TestVCS.getInstance().getVisibilityQuery().fireVisibilityChanged();
117
        assertTrue(received[0]);
118
    }
119
    
120
    public void testFireForFiles() throws IOException {
121
        final List<String> received = new ArrayList<String>();
122
        VisibilityQuery.getDefault().addChangeListener(new ChangeListener() {
123
            @Override
124
            public void stateChanged(ChangeEvent ce) {
125
                Assert.assertTrue(ce instanceof VisibilityQueryChangeEvent);
126
                FileObject[] fos = ((VisibilityQueryChangeEvent)ce).getFileObjects();
127
                Assert.assertEquals(2, fos.length);
128
                received.add(fos[0].getName());
129
                received.add(fos[1].getName());
130
            }
131
        });
132
        File f1 = new File(getWorkDir(), "f1" + TestVCS.VERSIONED_FOLDER_SUFFIX);
133
        File f2 = new File(getWorkDir(), "f2" + TestVCS.VERSIONED_FOLDER_SUFFIX);
134
        f1.createNewFile();
135
        f2.createNewFile();
136
        TestVCS.getInstance().getVisibilityQuery().fireVisibilityChanged(
137
                new VCSFileProxy[] {
138
                    VCSFileProxy.createFileProxy(f1), 
139
                    VCSFileProxy.createFileProxy(f2)});
140
        
141
        assertTrue(received.contains(f1.getName()));
142
        assertTrue(received.contains(f2.getName()));
143
    }
144
    
103
    private class VQChangeListener implements ChangeListener {
145
    private class VQChangeListener implements ChangeListener {
104
        private static final long MAXTIME = 30000;
146
        private static final long MAXTIME = 30000;
105
        private static final long STABLETIME = 10000;
147
        private static final long STABLETIME = 10000;
(-)versioning.core/test/unit/src/org/netbeans/modules/versioning/core/spi/testvcs/TestVCSVisibilityQuery.java (+7 lines)
Lines 58-61 Link Here
58
        return !file.getName().endsWith(INVISIBLE_FILE_SUFFIX);
58
        return !file.getName().endsWith(INVISIBLE_FILE_SUFFIX);
59
    }
59
    }
60
60
61
    public void visibilityChanged() {
62
        fireVisibilityChanged();
63
    }
64
    
65
    public void visibilityChanged(VCSFileProxy... files) {
66
        fireVisibilityChanged(files);
67
    }    
61
}
68
}
(-)versioning/apichanges.xml (+14 lines)
Lines 112-117 Link Here
112
        <change>
112
        <change>
113
            <api name="versioning_spi"/>
113
            <api name="versioning_spi"/>
114
            <summary>Support ContextAwareActions</summary>
114
            <summary>Support ContextAwareActions</summary>
115
            <version major="1" minor="37"/>
116
            <date day="16" month="11" year="2012"/>
117
            <author login="tstupka"/>
118
            <compatibility addition="yes"/>
119
            <description>
120
                make it possible for Versioning Systems to fire visibility changes for a list of files
121
                instead of one unspecific change event.
122
            </description>
123
            <class package="org.netbeans.modules.versioning.spi" name="VCSVisibilityQuery"/>
124
            <issue number="221831"/>
125
        </change>                
126
        <change>
127
            <api name="versioning_spi"/>
128
            <summary>Support ContextAwareActions</summary>
115
            <version major="1" minor="31"/>
129
            <version major="1" minor="31"/>
116
            <date day="12" month="4" year="2012"/>
130
            <date day="12" month="4" year="2012"/>
117
            <author login="tstupka"/>
131
            <author login="tstupka"/>
(-)versioning/nbproject/project.properties (-1 / +1 lines)
Lines 44-50 Link Here
44
javac.source=1.6
44
javac.source=1.6
45
45
46
javadoc.name=Versioning
46
javadoc.name=Versioning
47
spec.version.base=1.36.0
47
spec.version.base=1.37.0
48
is.autoload=true
48
is.autoload=true
49
49
50
javadoc.arch=${basedir}/arch.xml
50
javadoc.arch=${basedir}/arch.xml
(-)versioning/nbproject/project.xml (-1 / +1 lines)
Lines 64-70 Link Here
64
                    <compile-dependency/>
64
                    <compile-dependency/>
65
                    <run-dependency>
65
                    <run-dependency>
66
                        <release-version>1</release-version>
66
                        <release-version>1</release-version>
67
                        <specification-version>1.7.0</specification-version>
67
                        <specification-version>1.10.0</specification-version>
68
                    </run-dependency>
68
                    </run-dependency>
69
                </dependency>
69
                </dependency>
70
                <dependency>
70
                <dependency>
(-)versioning/src/org/netbeans/modules/versioning/spi/VCSVisibilityQuery.java (+11 lines)
Lines 69-72 Link Here
69
    protected final void fireVisibilityChanged() {
69
    protected final void fireVisibilityChanged() {
70
        Utils.fireVisibilityChanged();
70
        Utils.fireVisibilityChanged();
71
    }
71
    }
72
    
73
    /**
74
     * Notify a visibility change
75
     * 
76
     * @param File[] the files with a changed visibility
77
     * @since 1.37
78
     */
79
    protected final void fireVisibilityChanged(File... files) {
80
        Utils.fireVisibilityChanged(files);
81
    }
82
    
72
}
83
}
(-)versioning/test/unit/src/org/netbeans/modules/versioning/spi/VCSVisibilityQueryTest.java (+37 lines)
Lines 50-60 Link Here
50
import org.openide.filesystems.FileObject;
50
import org.openide.filesystems.FileObject;
51
51
52
import java.io.File;
52
import java.io.File;
53
import java.util.ArrayList;
54
import java.util.List;
53
import javax.swing.event.ChangeListener;
55
import javax.swing.event.ChangeListener;
56
import junit.framework.Assert;
54
import org.netbeans.api.queries.VisibilityQuery;
57
import org.netbeans.api.queries.VisibilityQuery;
55
import org.netbeans.junit.NbTestCase;
58
import org.netbeans.junit.NbTestCase;
56
import org.netbeans.modules.versioning.spi.testvcs.TestVCS;
59
import org.netbeans.modules.versioning.spi.testvcs.TestVCS;
57
import org.netbeans.modules.versioning.spi.testvcs.TestVCSVisibilityQuery;
60
import org.netbeans.modules.versioning.spi.testvcs.TestVCSVisibilityQuery;
61
import org.netbeans.spi.queries.VisibilityQueryChangeEvent;
58
62
59
/**
63
/**
60
 * Versioning SPI unit tests of VCSVisibilityQuery.
64
 * Versioning SPI unit tests of VCSVisibilityQuery.
Lines 96-101 Link Here
96
        assertFalse(VisibilityQuery.getDefault().isVisible(invisibleFO));
100
        assertFalse(VisibilityQuery.getDefault().isVisible(invisibleFO));
97
        VisibilityQuery.getDefault().removeChangeListener(cl);
101
        VisibilityQuery.getDefault().removeChangeListener(cl);
98
    }
102
    }
103
    
104
    public void testFireForAll() {
105
        final boolean [] received = new boolean[] {false};
106
        VisibilityQuery.getDefault().addChangeListener(new ChangeListener() {
107
            @Override
108
            public void stateChanged(ChangeEvent ce) {
109
                received[0] = true;
110
            }
111
        });
112
        TestVCS.getInstance().getVisibilityQuery().fireVisibilityChanged();
113
        assertTrue(received[0]);
114
    }
115
    
116
    public void testFireForFiles() throws IOException {
117
        final List<String> received = new ArrayList<String>();
118
        VisibilityQuery.getDefault().addChangeListener(new ChangeListener() {
119
            @Override
120
            public void stateChanged(ChangeEvent ce) {
121
                Assert.assertTrue(ce instanceof VisibilityQueryChangeEvent);
122
                FileObject[] fos = ((VisibilityQueryChangeEvent)ce).getFileObjects();
123
                Assert.assertEquals(2, fos.length);
124
                received.add(fos[0].getName());
125
                received.add(fos[1].getName());
126
            }
127
        });
128
        File f1 = new File(getWorkDir(), "f1" + TestVCS.VERSIONED_FOLDER_SUFFIX);
129
        File f2 = new File(getWorkDir(), "f2" + TestVCS.VERSIONED_FOLDER_SUFFIX);
130
        f1.createNewFile();
131
        f2.createNewFile();
132
        TestVCS.getInstance().getVisibilityQuery().fireVisibilityChanged(new File[] {f1, f2});
133
        assertTrue(received.contains(f1.getName()));
134
        assertTrue(received.contains(f2.getName()));
135
    }
99
136
100
    private class VQChangeListener implements ChangeListener {
137
    private class VQChangeListener implements ChangeListener {
101
        private static final long MAXTIME = 30000;
138
        private static final long MAXTIME = 30000;
(-)versioning/test/unit/src/org/netbeans/modules/versioning/spi/testvcs/TestVCSVisibilityQuery.java (+8 lines)
Lines 57-61 Link Here
57
    public boolean isVisible(File file) {
57
    public boolean isVisible(File file) {
58
        return !file.getName().endsWith(INVISIBLE_FILE_SUFFIX);
58
        return !file.getName().endsWith(INVISIBLE_FILE_SUFFIX);
59
    }
59
    }
60
    
61
    public void visibilityChanged() {
62
        fireVisibilityChanged();
63
    }
64
    
65
    public void visibilityChanged(File... files) {
66
        fireVisibilityChanged(files);
67
    }
60
68
61
}
69
}

Return to bug 221831