问题列表 - 第14073页

单元测试Swing组件

我正在编写类似TotalCommander的应用程序.我有一个单独的文件列表组件,以及它的模型.模型支持侦听器并CurrentDirChanged以下列方式发出诸如此类事件的通知:

private void fireCurrentDirectoryChanged(final IFile dir) {
    if (SwingUtilities.isEventDispatchThread())
        for (FileTableEventsListener listener : tableListeners)
            listener.currentDirectoryChanged(dir);
    else {
        SwingUtilities.invokeLater(new Runnable() {
            public void run() {
                for (FileTableEventsListener listener : tableListeners)
                    listener.currentDirectoryChanged(dir);
            }
        });
    }
}

我为此写了一个简单的测试:

@Test
public void testEvents() throws IOException {
    IFile testDir = mockDirectoryStructure();
    final FileSystemEventsListener listener = 
                context.mock(FileSystemEventsListener.class);
    context.checking(new Expectations() {{
        oneOf(listener).currentDirectoryChanged(with(any(IFile.class)));
    }});

    FileTableModel model = new FileTableModel(testDir);
    model.switchToInnerDirectory(1);
}

这不起作用,因为没有EventDispatchThread.有没有办法在无头构建中进行单元测试?

单元测试java swing jmock

java swing unit-testing jmock

9
推荐指数
2
解决办法
1万
查看次数

C# - 超出范围时是否会立即销毁对象?

我是否可以相信一个对象被销毁,并且当它超出C#中的范围时会立即调用它的析构函数?

我认为它应该是因为许多常见的编码实践(例如事务对象)都依赖于这种行为,但我并不习惯使用垃圾收集,并且对这些语言通常的行为方式几乎没有任何了解.

谢谢.

c# garbage-collection raii

11
推荐指数
2
解决办法
1万
查看次数

CEdit控制MFC,将光标放在SetWindowText之后的字符串末尾

我正在使用VC9,我有一个CEdit控件,其内容被重置为默认测试(比如 - "填写"),只需单击一个按钮,然后我调用SetFocus进行CEdit控件.问题是光标在默认文本的开头闪烁,我希望它闪烁默认字符串的结尾.

如何才能做到这一点?

c++ mfc visual-c++

11
推荐指数
2
解决办法
2万
查看次数

如何将Try/Catch添加到SQL存储过程

CREATE PROCEDURE [dbo].[PL_GEN_PROVN_NO1]        
@GAD_COMP_CODE  VARCHAR(2) =NULL, 
@@voucher_no numeric =null output 
AS         
BEGIN  
    DECLARE @NUM NUMERIC 
    DECLARE @PNO  NUMERIC                               
    SET @PNO = 0 
    DECLARE @PNO1 NUMERIC
    SET @PNO1=0 

--  begin transaction 

    IF NOT EXISTS (select GLDC_NEXT_PRV_NO
               FROM   GLAS_FINANCIAL_DOCUMENTS          
                   WHERE  GLDC_COMP_CODE  = @GAD_COMP_CODE        
                   AND GLDC_DOC_CODE  = 'JV' )
    BEGIN
               RAISERROR ('Error in generating provision number..',16,1) 
               -- ROLLBACK TRANSACTION
    END
ELSE
SELECT @PNO=ISNULL(GLDC_NEXT_PRV_NO,0)+1
FROM   GLAS_FINANCIAL_DOCUMENTS          
WHERE  GLDC_COMP_CODE  = @GAD_COMP_CODE        
AND GLDC_DOC_CODE  = 'JV' 

UPDATE  GLAS_FINANCIAL_DOCUMENTS        
SET GLDC_NEXT_PRV_NO = @PNO         
WHERE  GLDC_COMP_CODE  = @GAD_COMP_CODE …
Run Code Online (Sandbox Code Playgroud)

sql t-sql sql-server try-catch

39
推荐指数
3
解决办法
12万
查看次数

Eclipse是否具有像Visual Studio这样的可扩展性功能而没有任何编码?

在Visual Studio中,您可以添加外部工具并将选定的文本作为参数传递给它.

eclipse是否具有相同类型的功能,或者是否有义务为此编写插件?

如果是这样,那么任何特定的代码示例就是这样做的,因为我找到的只是自定义编辑器的通用示例插件.

eclipse visual-studio

2
推荐指数
1
解决办法
275
查看次数

使用maven为eclipse编译器设置Java 6注释处理配置

为Java 6注释处理器设置eclipse项目编译器配置的最佳方法是什么?

我的解决方案是手动设置org.eclipse.jdt.apt.core.prefsfactorypath文件.这有点麻烦:

  • 引用factorypath文件中的处理器jar
  • 配置eclipse注释处理器输出目录(org.eclipse.jdt.apt.genSrcDir属性org.eclipse.jdt.apt.core.prefs)
  • 添加eclipse注释处理器输出目录作为源文件夹

一个问题是eclipse生成的源将使用maven编译.只有maven clean compile可靠,因为它删除了eclipse生成的源文件.(Eclipse和javac生成的源文件可能不同步.)

有没有更好的解决方案来配置maven没有eclipse生成的源文件在maven源路径?

<project>
  <properties>
    <eclipse.generated.src>${project.build.directory}/eclipse</eclipse.generated.src>
  </properties>
  <build>
      <plugin>
            <groupId>org.codehaus.mojo</groupId>
            <artifactId>build-helper-maven-plugin</artifactId>
            <version>1.4</version>
            <executions>
                <execution>
                  <id>add-source</id>
                  <phase>generate-sources</phase>
                  <goals> <goal>add-source</goal> </goals>
                  <configuration>
                      <sources>
                        <source>${eclipse.generated.src}</source>
                      </sources>
                    </configuration>
              </execution>
            </executions>
          </plugin>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-eclipse-plugin</artifactId>
        <configuration>
          <additionalConfig>
            <file> <name>.factorypath</name>
        <content><![CDATA[<factorypath>
  <factorypathentry kind="VARJAR" id="M2_REPO/processor/processor.jar" enabled="true" runInBatchMode="false"/>
  </factorypath>
  ]]>      </content>
            </file>
            <file>
              <name>.settings/org.eclipse.jdt.apt.core.prefs</name>
        <content><![CDATA[
  eclipse.preferences.version=1
  org.eclipse.jdt.apt.aptEnabled=true
  org.eclipse.jdt.apt.genSrcDir=${eclipse.generated.src}
  org.eclipse.jdt.apt.reconcileEnabled=true
   ]]>     </content>
            </file>
          </additionalConfig>
        </configuration>
      </plugin>
    </plugins>
  </build>
</project>
Run Code Online (Sandbox Code Playgroud)

java eclipse maven-2 annotations javac

16
推荐指数
1
解决办法
1万
查看次数

如何在Visual Studio 2008中启用SSE/SSE2指令集(使用CMake)?

在Visual Studio 2005中,我进入了:

查看 - >属性页 - > C/C++ - >代码生成 - >启用增强指令集

但在Visual Studio 2008中?

提前致谢

c++ cmake visual-studio-2008

13
推荐指数
2
解决办法
3万
查看次数

有没有人知道重用身份价值的巧妙技巧?

通常,当您指定标识列时,您将在SQL Server中获得一个方便的接口,用于请求特定行.

SELECT * FROM $IDENTITY = @pID
Run Code Online (Sandbox Code Playgroud)

如果是标识列,您实际上并不需要关注自己的名称,因为只能有一个.

但是,如果我有一个主要由临时数据组成的表,该怎么办?大量插入和大量删除.有没有一种简单的方法可以重用身份值.

我希望能够编写一个函数,该函数将返回说NEXT_SMALLEST($IDENTITY)下一个标识值并以故障安全方式执行.

基本上找到未使用的最小值.这并不是一件容易的事,但我想要的是能够告诉SQL Server这是我的函数,它将生成身份值.但我所知道的是,没有这样的功能......

我想要...

实现全局数据库ID,我需要提供一个我可以控制的默认值.

我的想法是基于我应该能够拥有一个包含所有已知ID的表,然后来自其他需要全局ID的表的每一行ID都会引用该表.默认值将由类似的东西提供

INSERT INTO GlobalID
RETURN SCOPE_IDENTITY()
Run Code Online (Sandbox Code Playgroud)

sql t-sql sql-server

0
推荐指数
1
解决办法
1712
查看次数

在数据库中存储标签.存储标签一次或多次?

我想更详细地说明在数据库中存储标签的toxi方法 - 在SO上的其他地方提到过.

数据库架构是:

Table: Item
Columns: ItemID, Title, Content

Table: Tag
Columns: TagID, Title

Table: ItemTag
Columns: ItemID, TagID
Run Code Online (Sandbox Code Playgroud)

这可能是一个愚蠢的问题(但我不知道答案)...表标签中的每个条目都应该有一个唯一的标题.即我只存储一次标签或每次使用它时存储它?

为了说明,我最终应该得到以下两个表中的哪一个:

TagID     Title
1         Fish
2         Cat
3         Dog
Run Code Online (Sandbox Code Playgroud)

要么

TagID     Title
1         Fish
2         Fish
3         Cat
4         Fish
5         Dog
6         Cat
Run Code Online (Sandbox Code Playgroud)

如果使用第一个表,在输入标签之前我首先必须运行和sql语句来查明它是否存在,对吗?

任何帮助将不胜感激.由于黑客攻击和索引,我最近手指烧伤,想要开始正确的基础知识.

mysql sql database

7
推荐指数
1
解决办法
3084
查看次数

如何实现搜索2个不同的表数据?

使用mysql和PHP

我已经使用了MATCH AGAINST条款.

它可以很好地对抗各个表.就像我想在商店桌上搜索一样.没问题.

我想要的是能够在单个结果页面中搜索和显示不同表格的结果.

例如,如果我输入"巧克力衣服"

我可以得到4个结果如下:

Shop1结果

ShopItem1结果

ShopItem2结果

Shop2结果

当然,最相关的结果应该排在第一位.

我有很多问题.设计明智和实施明智

1)我应该改变我的设计吗?我正在考虑有一个名为搜索结果的单独表格,其中包含来自SHOPS和SHOPPRODUCTS表的数据.但这意味着我有一些数据重复.

2)我应该保留目前的设计吗?如果是这样,那么我怎么能在两个不同的表中按相关性排序搜索结果呢?

我看到rottentomatoes将他们的搜索结果组织在不同的组中.但是,我们更喜欢搜索结果不受不同类型的限制,特别是当我们进行分页时,UI更难以导航.

http://www.rottentomatoes.com/search/full_search.php?search=girl

或者那实际上是最好的出路?

我希望有人可以就这类事情向我提供指导,如果您有跨多数表格生成搜索结果的经验.

因为按需求,我会把表结构放在这里

CREATE TABLE `shopitems` (
  `id` int(10) unsigned NOT NULL auto_increment,
  `ShopID` int(10) unsigned NOT NULL,
  `ImageID` int(10) unsigned NOT NULL,
  `name` varchar(100) NOT NULL,
  `description` varchar(255) NOT NULL,
  `pricing` varchar(45) NOT NULL,
  `datetime_created` datetime NOT NULL,
  PRIMARY KEY  (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=31 DEFAULT CHARSET=utf8;

/*Table structure for table `shops` */

DROP TABLE IF EXISTS `shops`;

CREATE TABLE `shops` (
  `id` …
Run Code Online (Sandbox Code Playgroud)

php mysql search full-text-search

2
推荐指数
1
解决办法
2042
查看次数